diff --git a/src/main/java/org/opentripplanner/model/plan/Itinerary.java b/src/main/java/org/opentripplanner/model/plan/Itinerary.java index 0ee918350b1..fa31ef3f23c 100644 --- a/src/main/java/org/opentripplanner/model/plan/Itinerary.java +++ b/src/main/java/org/opentripplanner/model/plan/Itinerary.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; @@ -187,8 +188,8 @@ public void flagForDeletion(SystemNotice notice) { /** * Remove all deletion flags of this itinerary, in effect undeleting it from the result. */ - public void removeDeletionFlags() { - systemNotices.clear(); + public void removeDeletionFlags(Set removeTags) { + systemNotices.removeIf(it -> removeTags.contains(it.tag())); } public boolean isFlaggedForDeletion() { diff --git a/src/main/java/org/opentripplanner/routing/algorithm/filterchain/ItineraryListFilterChainBuilder.java b/src/main/java/org/opentripplanner/routing/algorithm/filterchain/ItineraryListFilterChainBuilder.java index 913146f58fe..ae20cf3fe14 100644 --- a/src/main/java/org/opentripplanner/routing/algorithm/filterchain/ItineraryListFilterChainBuilder.java +++ b/src/main/java/org/opentripplanner/routing/algorithm/filterchain/ItineraryListFilterChainBuilder.java @@ -483,6 +483,8 @@ private List buildGroupBySameRoutesAndStopsFilter() { * The filter name is dynamically created: similar-legs-filter-68p-1 */ private List buildGroupByTripIdAndDistanceFilters() { + var sysTags = new ArrayList(); + List groupBy = groupBySimilarity .stream() .sorted(Comparator.comparingDouble(o -> o.groupByP)) @@ -491,16 +493,18 @@ private List buildGroupByTripIdAndDistanceFilters() { List groupByFilters = new ArrayList<>(); for (GroupBySimilarity group : groupBy) { - String name = + String tag = "similar-legs-filter-%.0fp-%dx".formatted( 100d * group.groupByP, group.maxNumOfItinerariesPerGroup ); + sysTags.add(tag); List nested = new ArrayList<>(); if (group.nestedGroupingByAllSameStations) { - final String innerGroupName = name + "-group-by-all-same-stations"; + final String innerGroupName = tag + "-group-by-all-same-stations"; + sysTags.add(tag); nested.add( new GroupByFilter<>( GroupByAllSameStations::new, @@ -513,19 +517,17 @@ private List buildGroupByTripIdAndDistanceFilters() { } if (group.maxCostOtherLegsFactor > 1.0) { - nested.add( - new DeletionFlaggingFilter( - new OtherThanSameLegsMaxGeneralizedCostFilter(group.maxCostOtherLegsFactor) - ) - ); + var flagger = new OtherThanSameLegsMaxGeneralizedCostFilter(group.maxCostOtherLegsFactor); + sysTags.add(flagger.name()); + nested.add(new DeletionFlaggingFilter(flagger)); } nested.add(new SortingFilter(generalizedCostComparator())); nested.add( - new DeletionFlaggingFilter(new MaxLimitFilter(name, group.maxNumOfItinerariesPerGroup)) + new DeletionFlaggingFilter(new MaxLimitFilter(tag, group.maxNumOfItinerariesPerGroup)) ); - nested.add(new RemoveDeletionFlagForLeastTransfersItinerary()); + nested.add(new RemoveDeletionFlagForLeastTransfersItinerary(sysTags)); groupByFilters.add( new GroupByFilter<>(it -> new GroupByDistance(it, group.groupByP), nested) diff --git a/src/main/java/org/opentripplanner/routing/algorithm/filterchain/filter/RemoveDeletionFlagForLeastTransfersItinerary.java b/src/main/java/org/opentripplanner/routing/algorithm/filterchain/filter/RemoveDeletionFlagForLeastTransfersItinerary.java index 128480e9c60..4f1ec269a75 100644 --- a/src/main/java/org/opentripplanner/routing/algorithm/filterchain/filter/RemoveDeletionFlagForLeastTransfersItinerary.java +++ b/src/main/java/org/opentripplanner/routing/algorithm/filterchain/filter/RemoveDeletionFlagForLeastTransfersItinerary.java @@ -2,22 +2,36 @@ import static org.opentripplanner.routing.algorithm.filterchain.comparator.SortOrderComparator.numberOfTransfersComparator; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import org.opentripplanner.model.SystemNotice; import org.opentripplanner.model.plan.Itinerary; import org.opentripplanner.routing.algorithm.filterchain.ItineraryListFilter; /** * This filter makes sure that the itinerary with the least amount of transfers is not marked for - * deletion + * deletion. It iterates over the itineraries and remove the SystemNotice if it contains + * the provided set of {@code filterKeys}. The itinerary must match all {@code filterKeys}, and + * if so the given keys are removed. Other system-notices are ignored. */ public class RemoveDeletionFlagForLeastTransfersItinerary implements ItineraryListFilter { + private final Set filterKeys; + + public RemoveDeletionFlagForLeastTransfersItinerary(List filterKeys) { + this.filterKeys = new HashSet<>(filterKeys); + } + @Override public List filter(List itineraries) { itineraries .stream() .min(numberOfTransfersComparator()) - .ifPresent(Itinerary::removeDeletionFlags); + .filter(it -> + filterKeys.containsAll(it.getSystemNotices().stream().map(SystemNotice::tag).toList()) + ) + .ifPresent(it -> it.removeDeletionFlags(filterKeys)); return itineraries; } diff --git a/src/test/java/org/opentripplanner/routing/algorithm/filterchain/ItineraryListFilterChainTest.java b/src/test/java/org/opentripplanner/routing/algorithm/filterchain/ItineraryListFilterChainTest.java index d1469557043..6dd5831a9b1 100644 --- a/src/test/java/org/opentripplanner/routing/algorithm/filterchain/ItineraryListFilterChainTest.java +++ b/src/test/java/org/opentripplanner/routing/algorithm/filterchain/ItineraryListFilterChainTest.java @@ -18,6 +18,7 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.Mockito; +import org.opentripplanner.model.SystemNotice; import org.opentripplanner.model.plan.Itinerary; import org.opentripplanner.model.plan.PlanTestConstants; import org.opentripplanner.model.plan.TestItineraryBuilder; @@ -94,11 +95,12 @@ public void testDebugFilterChain() { // Walk first, then transit sorted on arrival-time assertEquals(toStr(List.of(i1, i2, i3)), toStr(chain.filter(List.of(i1, i2, i3)))); - assertTrue(i1.getSystemNotices().isEmpty()); - assertFalse(i2.getSystemNotices().isEmpty()); - assertFalse(i3.getSystemNotices().isEmpty()); - assertEquals("transit-vs-street-filter", i2.getSystemNotices().get(0).tag()); - assertEquals("outside-search-window", i3.getSystemNotices().get(0).tag()); + assertEquals("[]", toStringOfTags(i1.getSystemNotices())); + assertEquals( + "[transit-vs-street-filter, transit-vs-walk-filter]", + toStringOfTags(i2.getSystemNotices()) + ); + assertEquals("[outside-search-window]", toStringOfTags(i3.getSystemNotices())); } @Test @@ -320,4 +322,10 @@ public void removeTransitWithHigherCostThanBestOnStreetOnlyEnabled() { assertEquals(toStr(List.of(walk)), toStr(chain.filter(List.of(walk, bus)))); } } + + private static String toStringOfTags(List systemNotices) { + return systemNotices == null + ? "[]" + : systemNotices.stream().map(SystemNotice::tag).toList().toString(); + } } diff --git a/src/test/java/org/opentripplanner/routing/algorithm/filterchain/filter/GroupByFilterTest.java b/src/test/java/org/opentripplanner/routing/algorithm/filterchain/filter/GroupByFilterTest.java index 765d1892ff3..447e9f0ab8e 100644 --- a/src/test/java/org/opentripplanner/routing/algorithm/filterchain/filter/GroupByFilterTest.java +++ b/src/test/java/org/opentripplanner/routing/algorithm/filterchain/filter/GroupByFilterTest.java @@ -5,6 +5,7 @@ import static org.opentripplanner.model.plan.TestItineraryBuilder.newItinerary; import java.util.List; +import java.util.Set; import org.junit.jupiter.api.Test; import org.opentripplanner.model.plan.Itinerary; import org.opentripplanner.model.plan.PlanTestConstants; @@ -14,6 +15,8 @@ public class GroupByFilterTest implements PlanTestConstants { + private static final String TEST_FILTER_TAG = "test"; + /** * This test group by exact trip ids and test that the reduce function works properly. It does not * merge any groups. @@ -35,8 +38,11 @@ public void aSimpleTestGroupByMatchingTripIdsNoMerge() { assertFalse(i2a.isFlaggedForDeletion()); assertTrue(i2b.isFlaggedForDeletion()); - // Remove notice after asserting - i2b.removeDeletionFlags(); + // Remove an none existing set of tags + i2b.removeDeletionFlags(Set.of("ANY_TAG")); + assertTrue(i2b.isFlaggedForDeletion()); + + i2b.removeDeletionFlags(Set.of(TEST_FILTER_TAG)); // With min Limit = 2, we get two from each group createFilter(2).filter(all); @@ -78,9 +84,9 @@ public void testMerging() { // Remove notices after asserting assertTrue(i11.isFlaggedForDeletion()); - i11.removeDeletionFlags(); + i11.removeDeletionFlags(Set.of()); assertTrue(i12.isFlaggedForDeletion()); - i12.removeDeletionFlags(); + i12.removeDeletionFlags(Set.of()); } } @@ -92,7 +98,9 @@ private GroupByFilter createFilter(int maxNumberOfItinerariesPrGroup) i -> new AGroupId(i.firstLeg().getTrip().getId().getId()), List.of( new SortingFilter(SortOrderComparator.defaultComparatorDepartAfter()), - new DeletionFlaggingFilter(new MaxLimitFilter("test", maxNumberOfItinerariesPrGroup)) + new DeletionFlaggingFilter( + new MaxLimitFilter(TEST_FILTER_TAG, maxNumberOfItinerariesPrGroup) + ) ) ); } diff --git a/src/test/java/org/opentripplanner/routing/algorithm/mapping/__snapshots__/ElevationSnapshotTest.snap b/src/test/java/org/opentripplanner/routing/algorithm/mapping/__snapshots__/ElevationSnapshotTest.snap index 9713429109d..f3a2bd1becb 100644 --- a/src/test/java/org/opentripplanner/routing/algorithm/mapping/__snapshots__/ElevationSnapshotTest.snap +++ b/src/test/java/org/opentripplanner/routing/algorithm/mapping/__snapshots__/ElevationSnapshotTest.snap @@ -1182,10 +1182,10 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe }, { "arrivedAtDestinationWithRentedBicycle": false, - "duration": 1035, - "elevationGained": 5.01, - "elevationLost": 16.15, - "endTime": "2009-10-21T23:45:25.000+00:00", + "duration": 1112, + "elevationGained": 2.28, + "elevationLost": 13.43, + "endTime": "2009-10-21T23:54:25.000+00:00", "fare": { "coveringItinerary": [ { @@ -1239,41 +1239,41 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe } } }, - "generalizedCost": 2282, + "generalizedCost": 2235, "legs": [ { "agencyTimeZoneOffset": -25200000, "arrivalDelay": 0, "departureDelay": 0, - "distance": 106.59, - "endTime": "2009-10-21T23:30:48.000+00:00", + "distance": 545.48, + "endTime": "2009-10-21T23:42:25.000+00:00", "from": { - "departure": "2009-10-21T23:28:10.000+00:00", + "departure": "2009-10-21T23:35:53.000+00:00", "lat": 45.52832, "lon": -122.70059, "name": "SW Johnson St. & NW 24th Ave. (P1)", "vertexType": "NORMAL" }, - "generalizedCost": 304, + "generalizedCost": 773, "interlineWithPreviousLeg": false, - "legElevation": "0,63.7,9,64.1,19,64.7,29,65.2,39,65.8,49,66.3,59,66.8,69,67.2,79,67.4,93,66.6,107,66.2", + "legElevation": "0,63.7,1,63.7,11,63.2,21,62.9,31,62.7,41,62.3,51,62.0,61,61.6,71,61.3,81,61.0,91,60.5,101,60.1,111,59.7,121,59.5,131,59.4,142,59.1,152,58.9,160,58.8,170,58.5,180,58.2,190,58.1,200,57.9,210,57.6,220,57.3,230,57.0,240,56.7,250,56.5,260,56.3,270,55.9,280,55.6,290,55.3,300,55.0,310,54.7,319,54.5,329,54.2,339,53.9,349,53.6,359,53.4,369,53.2,379,52.8,389,52.5,399,52.2,409,51.9,419,51.6,429,51.6,439,51.5,449,51.2,459,51.1,469,50.9,476,50.7,486,50.9,496,51.2,506,51.4,516,51.7,526,51.9,536,52.2,545,52.4", "legGeometry": { - "length": 4, - "points": "}f{tGv}{kVjCA?e@WA" + "length": 9, + "points": "}f{tGv}{kVC?EiJ?k@GwKGsKL?nBC?H" }, "mode": "WALK", "pathway": false, "realTime": false, "rentedBike": false, "route": "", - "startTime": "2009-10-21T23:28:10.000+00:00", + "startTime": "2009-10-21T23:35:53.000+00:00", "steps": [ { - "absoluteDirection": "SOUTH", + "absoluteDirection": "NORTH", "area": false, "bogusName": false, - "distance": 78.53, - "elevation": "0,63.7,9,64.1,19,64.7,29,65.2,39,65.8,49,66.3,59,66.8,69,67.2,79,67.4", + "distance": 1.42, + "elevation": "0,63.7,1,63.7", "lat": 45.5283199, "lon": -122.7005963, "relativeDirection": "DEPART", @@ -1285,171 +1285,23 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "absoluteDirection": "EAST", "area": false, "bogusName": false, - "distance": 14.7, - "elevation": "0,67.4,15,66.6", - "lat": 45.5276138, - "lon": -122.700581, - "relativeDirection": "LEFT", + "distance": 474.52, + "elevation": "0,63.7,10,63.2,20,62.9,30,62.7,40,62.3,50,62.0,60,61.6,70,61.3,80,61.0,90,60.5,100,60.1,110,59.7,120,59.5,130,59.4,141,59.1,151,58.9,158,58.8,168,58.5,178,58.2,188,58.1,198,57.9,208,57.6,218,57.3,228,57.0,238,56.7,248,56.5,258,56.3,268,55.9,278,55.6,288,55.3,298,55.0,308,54.7,317,54.5,327,54.2,337,53.9,347,53.6,357,53.4,367,53.2,377,52.8,387,52.5,397,52.2,407,51.9,417,51.6,427,51.6,437,51.5,447,51.2,457,51.1,467,50.9,475,50.7", + "lat": 45.5283327, + "lon": -122.7005966, + "relativeDirection": "RIGHT", "stayOn": false, - "streetName": "Northwest Irving Street", + "streetName": "Northwest Johnson Street", "walkingBike": false }, - { - "absoluteDirection": "NORTH", - "area": false, - "bogusName": true, - "distance": 13.36, - "elevation": "0,66.6,13,66.2", - "lat": 45.5276173, - "lon": -122.7003923, - "relativeDirection": "LEFT", - "stayOn": false, - "streetName": "path", - "walkingBike": false - } - ], - "to": { - "arrival": "2009-10-21T23:30:48.000+00:00", - "bikeShareId": "-102309", - "departure": "2009-10-21T23:30:48.000+00:00", - "lat": 45.5277374, - "lon": -122.7003879, - "name": "-102309", - "networks": [ - "test-network" - ], - "vertexType": "BIKESHARE" - }, - "transitLeg": false, - "walkingBike": false - }, - { - "agencyTimeZoneOffset": -25200000, - "arrivalDelay": 0, - "departureDelay": 0, - "distance": 493.43, - "endTime": "2009-10-21T23:32:57.000+00:00", - "from": { - "arrival": "2009-10-21T23:30:48.000+00:00", - "bikeShareId": "-102309", - "departure": "2009-10-21T23:30:48.000+00:00", - "lat": 45.5277374, - "lon": -122.7003879, - "name": "-102309", - "networks": [ - "test-network" - ], - "vertexType": "BIKESHARE" - }, - "generalizedCost": 464, - "interlineWithPreviousLeg": false, - "legElevation": "0,66.2,13,66.6,23,65.7,33,64.9,43,64.1,53,63.1,63,62.5,73,62.5,83,62.1,93,61.9,103,61.7,113,61.4,123,61.1,133,60.9,143,60.6,158,60.2,168,59.9,178,59.6,188,59.3,198,59.0,208,58.7,218,58.4,228,58.1,238,57.8,248,57.5,258,57.1,268,56.8,278,56.6,288,56.4,298,56.2,308,55.9,316,55.7,326,55.5,336,55.3,346,55.0,356,54.7,366,54.4,376,54.1,386,53.8,396,53.6,406,53.5,416,53.3,426,53.3,440,53.0,450,52.9,460,52.8,474,52.6,484,52.4,493,52.2", - "legGeometry": { - "length": 7, - "points": "ic{tGl|{kVV@GsJEuKE}HAwAAo@" - }, - "mode": "BICYCLE", - "pathway": false, - "realTime": false, - "rentedBike": true, - "route": "", - "startTime": "2009-10-21T23:30:48.000+00:00", - "steps": [ { "absoluteDirection": "SOUTH", "area": false, - "bogusName": true, - "distance": 13.36, - "elevation": "0,66.2,13,66.6", - "lat": 45.5277374, - "lon": -122.7003879, - "relativeDirection": "HARD_RIGHT", - "stayOn": false, - "streetName": "path", - "walkingBike": true - }, - { - "absoluteDirection": "EAST", - "area": false, - "bogusName": false, - "distance": 480.08, - "elevation": "0,66.6,10,65.7,20,64.9,30,64.1,40,63.1,50,62.5,60,62.5,70,62.1,80,61.9,90,61.7,100,61.4,110,61.1,120,60.9,130,60.6,145,60.2,289,60.2,299,59.9,309,59.6,319,59.3,329,59.0,339,58.7,349,58.4,359,58.1,369,57.8,379,57.5,389,57.1,399,56.8,409,56.6,419,56.4,429,56.2,439,55.9,447,55.7,457,55.5,467,55.3,477,55.0,487,54.7,497,54.4,507,54.1,517,53.8,527,53.6,537,53.5,547,53.3,557,53.3,571,53.0,581,52.9,591,52.8,605,52.6,615,52.4,625,52.2", - "lat": 45.5276173, - "lon": -122.7003923, - "relativeDirection": "LEFT", - "stayOn": false, - "streetName": "Northwest Irving Street", - "walkingBike": false - } - ], - "to": { - "arrival": "2009-10-21T23:32:57.000+00:00", - "bikeShareId": "-102323", - "departure": "2009-10-21T23:32:57.000+00:00", - "lat": 45.5278491, - "lon": -122.6942362, - "name": "-102323", - "networks": [ - "test-network" - ], - "vertexType": "BIKESHARE" - }, - "transitLeg": false, - "walkingBike": false - }, - { - "agencyTimeZoneOffset": -25200000, - "arrivalDelay": 0, - "departureDelay": 0, - "distance": 29.46, - "endTime": "2009-10-21T23:33:25.000+00:00", - "from": { - "arrival": "2009-10-21T23:32:57.000+00:00", - "bikeShareId": "-102323", - "departure": "2009-10-21T23:32:57.000+00:00", - "lat": 45.5278491, - "lon": -122.6942362, - "name": "-102323", - "networks": [ - "test-network" - ], - "vertexType": "BIKESHARE" - }, - "generalizedCost": 50, - "interlineWithPreviousLeg": false, - "legElevation": "0,52.2,2,52.2,12,52.5,19,52.6,29,52.4", - "legGeometry": { - "length": 5, - "points": "ic{tG~uzkV@n@M@C??H" - }, - "mode": "WALK", - "pathway": false, - "realTime": false, - "rentedBike": false, - "route": "", - "startTime": "2009-10-21T23:32:57.000+00:00", - "steps": [ - { - "absoluteDirection": "WEST", - "area": false, - "bogusName": false, - "distance": 19.29, - "elevation": "0,52.2,2,52.2,12,52.5,19,52.6", - "lat": 45.5277322, - "lon": -122.6942318, - "relativeDirection": "HARD_LEFT", - "stayOn": false, - "streetName": "Northwest Irving Street", - "walkingBike": false - }, - { - "absoluteDirection": "NORTH", - "area": false, "bogusName": false, - "distance": 10.17, - "elevation": "0,52.6,10,52.4", - "lat": 45.5277276, - "lon": -122.6944793, + "distance": 69.54, + "elevation": "0,50.7,10,50.9,20,51.2,30,51.4,40,51.7,50,51.9,60,52.2,70,52.4", + "lat": 45.5284442, + "lon": -122.6945071, "relativeDirection": "RIGHT", "stayOn": false, "streetName": "Northwest 21st Avenue", @@ -1457,8 +1309,8 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe } ], "to": { - "arrival": "2009-10-21T23:33:25.000+00:00", - "departure": "2009-10-21T23:33:25.000+00:00", + "arrival": "2009-10-21T23:42:25.000+00:00", + "departure": "2009-10-21T23:42:25.000+00:00", "lat": 45.527818, "lon": -122.694539, "name": "NW 21st & Irving", @@ -1478,17 +1330,17 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "arrivalDelay": 0, "departureDelay": 0, "distance": 1629.43, - "endTime": "2009-10-21T23:43:00.000+00:00", + "endTime": "2009-10-21T23:52:00.000+00:00", "from": { - "arrival": "2009-10-21T23:33:25.000+00:00", - "departure": "2009-10-21T23:33:25.000+00:00", + "arrival": "2009-10-21T23:42:25.000+00:00", + "departure": "2009-10-21T23:42:25.000+00:00", "lat": 45.527818, "lon": -122.694539, "name": "NW 21st & Irving", "stopCode": "7114", "stopId": "prt:7114", - "stopIndex": 15, - "stopSequence": 16, + "stopIndex": 50, + "stopSequence": 51, "vertexType": "TRANSIT", "zoneId": "1" }, @@ -1497,80 +1349,80 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "interlineWithPreviousLeg": false, "intermediateStops": [ { - "arrival": "2009-10-21T23:34:20.000+00:00", - "departure": "2009-10-21T23:34:20.000+00:00", + "arrival": "2009-10-21T23:43:20.000+00:00", + "departure": "2009-10-21T23:43:20.000+00:00", "lat": 45.526408, "lon": -122.694503, "name": "NW 21st & Glisan", "stopCode": "7112", "stopId": "prt:7112", - "stopIndex": 16, - "stopSequence": 17, + "stopIndex": 51, + "stopSequence": 52, "vertexType": "TRANSIT", "zoneId": "1" }, { - "arrival": "2009-10-21T23:35:31.000+00:00", - "departure": "2009-10-21T23:35:31.000+00:00", + "arrival": "2009-10-21T23:44:31.000+00:00", + "departure": "2009-10-21T23:44:31.000+00:00", "lat": 45.524833, "lon": -122.69398, "name": "NW Everett & 21st", "stopCode": "1615", "stopId": "prt:1615", - "stopIndex": 17, - "stopSequence": 18, + "stopIndex": 52, + "stopSequence": 53, "vertexType": "TRANSIT", "zoneId": "1" }, { - "arrival": "2009-10-21T23:37:07.000+00:00", - "departure": "2009-10-21T23:37:07.000+00:00", + "arrival": "2009-10-21T23:46:07.000+00:00", + "departure": "2009-10-21T23:46:07.000+00:00", "lat": 45.524935, "lon": -122.690502, "name": "NW Everett & 19th", "stopCode": "1611", "stopId": "prt:1611", - "stopIndex": 18, - "stopSequence": 19, + "stopIndex": 53, + "stopSequence": 54, "vertexType": "TRANSIT", "zoneId": "1" }, { - "arrival": "2009-10-21T23:39:28.000+00:00", - "departure": "2009-10-21T23:39:28.000+00:00", + "arrival": "2009-10-21T23:48:28.000+00:00", + "departure": "2009-10-21T23:48:28.000+00:00", "lat": 45.524981, "lon": -122.68537, "name": "NW Everett & 14th", "stopCode": "1608", "stopId": "prt:1608", - "stopIndex": 19, - "stopSequence": 20, + "stopIndex": 54, + "stopSequence": 55, "vertexType": "TRANSIT", "zoneId": "0" }, { - "arrival": "2009-10-21T23:41:04.000+00:00", - "departure": "2009-10-21T23:41:04.000+00:00", + "arrival": "2009-10-21T23:50:04.000+00:00", + "departure": "2009-10-21T23:50:04.000+00:00", "lat": 45.525061, "lon": -122.68187, "name": "NW Everett & 11th", "stopCode": "1607", "stopId": "prt:1607", - "stopIndex": 20, - "stopSequence": 21, + "stopIndex": 55, + "stopSequence": 56, "vertexType": "TRANSIT", "zoneId": "0" }, { - "arrival": "2009-10-21T23:42:15.000+00:00", - "departure": "2009-10-21T23:42:15.000+00:00", + "arrival": "2009-10-21T23:51:15.000+00:00", + "departure": "2009-10-21T23:51:15.000+00:00", "lat": 45.525096, "lon": -122.67929, "name": "NW Everett & Park", "stopCode": "8402", "stopId": "prt:8402", - "stopIndex": 21, - "stopSequence": 22, + "stopIndex": 56, + "stopSequence": 57, "vertexType": "TRANSIT", "zoneId": "0" } @@ -1588,34 +1440,34 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "routeShortName": "17", "routeType": 3, "serviceDate": "2009-10-21", - "startTime": "2009-10-21T23:33:25.000+00:00", + "startTime": "2009-10-21T23:42:25.000+00:00", "steps": [ ], "to": { - "arrival": "2009-10-21T23:43:00.000+00:00", - "departure": "2009-10-21T23:43:00.000+00:00", + "arrival": "2009-10-21T23:52:00.000+00:00", + "departure": "2009-10-21T23:52:00.000+00:00", "lat": 45.525112, "lon": -122.677664, "name": "NW Everett & Broadway", "stopCode": "1606", "stopId": "prt:1606", - "stopIndex": 22, - "stopSequence": 23, + "stopIndex": 57, + "stopSequence": 58, "vertexType": "TRANSIT", "zoneId": "0" }, "transitLeg": true, - "tripBlockId": "1708", - "tripId": "prt:170W1470" + "tripBlockId": "1705", + "tripId": "prt:170W1480" }, { "agencyTimeZoneOffset": -25200000, "arrivalDelay": 0, "departureDelay": 0, "distance": 188.35, - "endTime": "2009-10-21T23:45:25.000+00:00", + "endTime": "2009-10-21T23:54:25.000+00:00", "from": { - "arrival": "2009-10-21T23:43:00.000+00:00", - "departure": "2009-10-21T23:43:00.000+00:00", + "arrival": "2009-10-21T23:52:00.000+00:00", + "departure": "2009-10-21T23:52:00.000+00:00", "lat": 45.525112, "lon": -122.677664, "name": "NW Everett & Broadway", @@ -1636,7 +1488,7 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "realTime": false, "rentedBike": false, "route": "", - "startTime": "2009-10-21T23:43:00.000+00:00", + "startTime": "2009-10-21T23:52:00.000+00:00", "steps": [ { "absoluteDirection": "EAST", @@ -1653,7 +1505,7 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe } ], "to": { - "arrival": "2009-10-21T23:45:25.000+00:00", + "arrival": "2009-10-21T23:54:25.000+00:00", "lat": 45.52523, "lon": -122.67525, "name": "NW Everett St. & NW 5th Ave. (P3)", @@ -1663,21 +1515,21 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "walkingBike": false } ], - "startTime": "2009-10-21T23:28:10.000+00:00", + "startTime": "2009-10-21T23:35:53.000+00:00", "tooSloped": false, "transfers": 0, "transitTime": 575, "waitingTime": 0, - "walkDistance": 817.83, + "walkDistance": 733.83, "walkLimitExceeded": false, - "walkTime": 460 + "walkTime": 537 }, { "arrivedAtDestinationWithRentedBicycle": false, - "duration": 1112, - "elevationGained": 2.28, - "elevationLost": 13.43, - "endTime": "2009-10-21T23:54:25.000+00:00", + "duration": 1000, + "elevationGained": 3.15, + "elevationLost": 3.93, + "endTime": "2009-10-21T23:56:10.000+00:00", "fare": { "coveringItinerary": [ { @@ -1713,7 +1565,7 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "routes": [ { "feedId": "prt", - "id": "17" + "id": "77" } ] } @@ -1731,41 +1583,41 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe } } }, - "generalizedCost": 2235, + "generalizedCost": 1803, "legs": [ { "agencyTimeZoneOffset": -25200000, "arrivalDelay": 0, "departureDelay": 0, - "distance": 545.48, - "endTime": "2009-10-21T23:42:25.000+00:00", + "distance": 220.15, + "endTime": "2009-10-21T23:42:21.000+00:00", "from": { - "departure": "2009-10-21T23:35:53.000+00:00", + "departure": "2009-10-21T23:39:30.000+00:00", "lat": 45.52832, "lon": -122.70059, "name": "SW Johnson St. & NW 24th Ave. (P1)", "vertexType": "NORMAL" }, - "generalizedCost": 773, + "generalizedCost": 334, "interlineWithPreviousLeg": false, - "legElevation": "0,63.7,1,63.7,11,63.2,21,62.9,31,62.7,41,62.3,51,62.0,61,61.6,71,61.3,81,61.0,91,60.5,101,60.1,111,59.7,121,59.5,131,59.4,142,59.1,152,58.9,160,58.8,170,58.5,180,58.2,190,58.1,200,57.9,210,57.6,220,57.3,230,57.0,240,56.7,250,56.5,260,56.3,270,55.9,280,55.6,290,55.3,300,55.0,310,54.7,319,54.5,329,54.2,339,53.9,349,53.6,359,53.4,369,53.2,379,52.8,389,52.5,399,52.2,409,51.9,419,51.6,429,51.6,439,51.5,449,51.2,459,51.1,469,50.9,476,50.7,486,50.9,496,51.2,506,51.4,516,51.7,526,51.9,536,52.2,545,52.4", + "legElevation": "0,63.7,1,63.7,11,63.4,21,63.2,31,63.3,41,63.5,51,63.3,61,62.9,71,62.5,81,62.2,91,62.0,101,61.7,111,61.5,121,61.2,131,60.9,141,60.6,151,60.3,160,60.2,170,60.7,180,61.1,190,61.6,200,61.9,210,62.4,220,62.9", "legGeometry": { - "length": 9, - "points": "}f{tGv}{kVC?EiJ?k@GwKGsKL?nBC?H" + "length": 6, + "points": "}f{tGv}{kVC?mCBmCD@zCN?" }, "mode": "WALK", "pathway": false, "realTime": false, "rentedBike": false, "route": "", - "startTime": "2009-10-21T23:35:53.000+00:00", + "startTime": "2009-10-21T23:39:30.000+00:00", "steps": [ { "absoluteDirection": "NORTH", "area": false, "bogusName": false, - "distance": 1.42, - "elevation": "0,63.7,1,63.7", + "distance": 159.62, + "elevation": "0,63.7,1,63.7,3,63.7,13,63.4,23,63.2,33,63.3,43,63.5,53,63.3,63,62.9,73,62.5,83,62.2,93,62.0,103,61.7,113,61.5,123,61.2,133,60.9,143,60.6,153,60.3,161,60.2", "lat": 45.5283199, "lon": -122.7005963, "relativeDirection": "DEPART", @@ -1774,40 +1626,27 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "walkingBike": false }, { - "absoluteDirection": "EAST", - "area": false, - "bogusName": false, - "distance": 474.52, - "elevation": "0,63.7,10,63.2,20,62.9,30,62.7,40,62.3,50,62.0,60,61.6,70,61.3,80,61.0,90,60.5,100,60.1,110,59.7,120,59.5,130,59.4,141,59.1,151,58.9,158,58.8,168,58.5,178,58.2,188,58.1,198,57.9,208,57.6,218,57.3,228,57.0,238,56.7,248,56.5,258,56.3,268,55.9,278,55.6,288,55.3,298,55.0,308,54.7,317,54.5,327,54.2,337,53.9,347,53.6,357,53.4,367,53.2,377,52.8,387,52.5,397,52.2,407,51.9,417,51.6,427,51.6,437,51.5,447,51.2,457,51.1,467,50.9,475,50.7", - "lat": 45.5283327, - "lon": -122.7005966, - "relativeDirection": "RIGHT", - "stayOn": false, - "streetName": "Northwest Johnson Street", - "walkingBike": false - }, - { - "absoluteDirection": "SOUTH", + "absoluteDirection": "WEST", "area": false, "bogusName": false, - "distance": 69.54, - "elevation": "0,50.7,10,50.9,20,51.2,30,51.4,40,51.7,50,51.9,60,52.2,70,52.4", - "lat": 45.5284442, - "lon": -122.6945071, - "relativeDirection": "RIGHT", + "distance": 60.52, + "elevation": "0,60.2,10,60.7,20,61.1,30,61.6,40,61.9,50,62.4,61,62.9", + "lat": 45.529755, + "lon": -122.7006488, + "relativeDirection": "LEFT", "stayOn": false, - "streetName": "Northwest 21st Avenue", + "streetName": "Northwest Lovejoy Street", "walkingBike": false } ], "to": { - "arrival": "2009-10-21T23:42:25.000+00:00", - "departure": "2009-10-21T23:42:25.000+00:00", - "lat": 45.527818, - "lon": -122.694539, - "name": "NW 21st & Irving", - "stopCode": "7114", - "stopId": "prt:7114", + "arrival": "2009-10-21T23:42:21.000+00:00", + "departure": "2009-10-21T23:42:21.000+00:00", + "lat": 45.529662, + "lon": -122.701423, + "name": "2400 Block NW Lovejoy", + "stopCode": "3589", + "stopId": "prt:3589", "vertexType": "TRANSIT", "zoneId": "1" }, @@ -1821,175 +1660,188 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "agencyUrl": "http://trimet.org", "arrivalDelay": 0, "departureDelay": 0, - "distance": 1629.43, - "endTime": "2009-10-21T23:52:00.000+00:00", + "distance": 2804.13, + "endTime": "2009-10-21T23:55:32.000+00:00", "from": { - "arrival": "2009-10-21T23:42:25.000+00:00", - "departure": "2009-10-21T23:42:25.000+00:00", - "lat": 45.527818, - "lon": -122.694539, - "name": "NW 21st & Irving", - "stopCode": "7114", - "stopId": "prt:7114", - "stopIndex": 50, - "stopSequence": 51, + "arrival": "2009-10-21T23:42:21.000+00:00", + "departure": "2009-10-21T23:42:21.000+00:00", + "lat": 45.529662, + "lon": -122.701423, + "name": "2400 Block NW Lovejoy", + "stopCode": "3589", + "stopId": "prt:3589", + "stopIndex": 6, + "stopSequence": 7, "vertexType": "TRANSIT", "zoneId": "1" }, - "generalizedCost": 1175, - "headsign": "136th Ave", + "generalizedCost": 1391, + "headsign": "Troutdale", "interlineWithPreviousLeg": false, "intermediateStops": [ { - "arrival": "2009-10-21T23:43:20.000+00:00", - "departure": "2009-10-21T23:43:20.000+00:00", - "lat": 45.526408, - "lon": -122.694503, - "name": "NW 21st & Glisan", - "stopCode": "7112", - "stopId": "prt:7112", - "stopIndex": 51, - "stopSequence": 52, + "arrival": "2009-10-21T23:43:54.000+00:00", + "departure": "2009-10-21T23:43:54.000+00:00", + "lat": 45.529746, + "lon": -122.69688, + "name": "NW Lovejoy & 22nd", + "stopCode": "3596", + "stopId": "prt:3596", + "stopIndex": 7, + "stopSequence": 8, "vertexType": "TRANSIT", "zoneId": "1" }, { - "arrival": "2009-10-21T23:44:31.000+00:00", - "departure": "2009-10-21T23:44:31.000+00:00", - "lat": 45.524833, - "lon": -122.69398, - "name": "NW Everett & 21st", - "stopCode": "1615", - "stopId": "prt:1615", - "stopIndex": 52, - "stopSequence": 53, + "arrival": "2009-10-21T23:44:39.000+00:00", + "departure": "2009-10-21T23:44:39.000+00:00", + "lat": 45.529833, + "lon": -122.694676, + "name": "NW Lovejoy & 21st", + "stopCode": "3595", + "stopId": "prt:3595", + "stopIndex": 8, + "stopSequence": 9, "vertexType": "TRANSIT", "zoneId": "1" }, { - "arrival": "2009-10-21T23:46:07.000+00:00", - "departure": "2009-10-21T23:46:07.000+00:00", - "lat": 45.524935, - "lon": -122.690502, - "name": "NW Everett & 19th", - "stopCode": "1611", - "stopId": "prt:1611", - "stopIndex": 53, - "stopSequence": 54, + "arrival": "2009-10-21T23:46:23.000+00:00", + "departure": "2009-10-21T23:46:23.000+00:00", + "lat": 45.529925, + "lon": -122.689587, + "name": "NW Lovejoy & 18th", + "stopCode": "10751", + "stopId": "prt:10751", + "stopIndex": 9, + "stopSequence": 10, "vertexType": "TRANSIT", "zoneId": "1" }, { - "arrival": "2009-10-21T23:48:28.000+00:00", - "departure": "2009-10-21T23:48:28.000+00:00", - "lat": 45.524981, - "lon": -122.68537, - "name": "NW Everett & 14th", - "stopCode": "1608", - "stopId": "prt:1608", - "stopIndex": 54, - "stopSequence": 55, + "arrival": "2009-10-21T23:48:05.000+00:00", + "departure": "2009-10-21T23:48:05.000+00:00", + "lat": 45.529997, + "lon": -122.684611, + "name": "NW Lovejoy & 13th", + "stopCode": "10752", + "stopId": "prt:10752", + "stopIndex": 10, + "stopSequence": 11, "vertexType": "TRANSIT", - "zoneId": "0" + "zoneId": "1" }, { - "arrival": "2009-10-21T23:50:04.000+00:00", - "departure": "2009-10-21T23:50:04.000+00:00", - "lat": 45.525061, - "lon": -122.68187, - "name": "NW Everett & 11th", - "stopCode": "1607", - "stopId": "prt:1607", - "stopIndex": 55, - "stopSequence": 56, + "arrival": "2009-10-21T23:49:07.000+00:00", + "departure": "2009-10-21T23:49:07.000+00:00", + "lat": 45.530034, + "lon": -122.68155, + "name": "NW Lovejoy & 10th", + "stopCode": "11000", + "stopId": "prt:11000", + "stopIndex": 11, + "stopSequence": 12, "vertexType": "TRANSIT", - "zoneId": "0" + "zoneId": "1" }, { - "arrival": "2009-10-21T23:51:15.000+00:00", - "departure": "2009-10-21T23:51:15.000+00:00", - "lat": 45.525096, - "lon": -122.67929, - "name": "NW Everett & Park", - "stopCode": "8402", - "stopId": "prt:8402", - "stopIndex": 56, - "stopSequence": 57, + "arrival": "2009-10-21T23:50:00.000+00:00", + "departure": "2009-10-21T23:50:00.000+00:00", + "lat": 45.531086, + "lon": -122.680302, + "name": "NW 9th & Marshall", + "stopCode": "12803", + "stopId": "prt:12803", + "stopIndex": 12, + "stopSequence": 13, + "vertexType": "TRANSIT", + "zoneId": "1" + }, + { + "arrival": "2009-10-21T23:52:50.000+00:00", + "departure": "2009-10-21T23:52:50.000+00:00", + "lat": 45.528405, + "lon": -122.676979, + "name": "NW Station Way & Union Station", + "stopCode": "12804", + "stopId": "prt:12804", + "stopIndex": 13, + "stopSequence": 14, "vertexType": "TRANSIT", "zoneId": "0" } ], "legGeometry": { - "length": 39, - "points": "{c{tGnwzkVR?lCEvBC??VAlCClCEAkA??A}BCkEAkECaD???g@CiECiEEiE?c@?o@?]Aa@?w@AoD???YEkEAkECiEA_A??AiCCkECmD???[A_CCiD" + "length": 60, + "points": "yo{tG|b|kVC}CEuKGwI???}@G{J???YGsKEuKCuD???UCiECeEAgA?{@AkA?WAwDE{C???i@CiECkECcD??Ae@?mE{BDQ@q@@??{ADCsDbBiB`DaEt@_AVANIX?tBCLK`@c@\\c@l@w@??\\c@FKDCFEXCCgEvBEVAlCClCEnCECoD" }, "mode": "BUS", "pathway": false, "realTime": false, - "route": "Holgate/NW 21st", - "routeId": "prt:17", - "routeLongName": "Holgate/NW 21st", - "routeShortName": "17", + "route": "Broadway/Halsey", + "routeId": "prt:77", + "routeLongName": "Broadway/Halsey", + "routeShortName": "77", "routeType": 3, "serviceDate": "2009-10-21", - "startTime": "2009-10-21T23:42:25.000+00:00", + "startTime": "2009-10-21T23:42:21.000+00:00", "steps": [ ], "to": { - "arrival": "2009-10-21T23:52:00.000+00:00", - "departure": "2009-10-21T23:52:00.000+00:00", - "lat": 45.525112, - "lon": -122.677664, - "name": "NW Everett & Broadway", - "stopCode": "1606", - "stopId": "prt:1606", - "stopIndex": 57, - "stopSequence": 58, + "arrival": "2009-10-21T23:55:32.000+00:00", + "departure": "2009-10-21T23:55:32.000+00:00", + "lat": 45.525183, + "lon": -122.674607, + "name": "NW Everett & 4th", + "stopCode": "9546", + "stopId": "prt:9546", + "stopIndex": 14, + "stopSequence": 15, "vertexType": "TRANSIT", "zoneId": "0" }, "transitLeg": true, - "tripBlockId": "1705", - "tripId": "prt:170W1480" + "tripBlockId": "7703", + "tripId": "prt:770W1400" }, { "agencyTimeZoneOffset": -25200000, "arrivalDelay": 0, "departureDelay": 0, - "distance": 188.35, - "endTime": "2009-10-21T23:54:25.000+00:00", + "distance": 49.94, + "endTime": "2009-10-21T23:56:10.000+00:00", "from": { - "arrival": "2009-10-21T23:52:00.000+00:00", - "departure": "2009-10-21T23:52:00.000+00:00", - "lat": 45.525112, - "lon": -122.677664, - "name": "NW Everett & Broadway", - "stopCode": "1606", - "stopId": "prt:1606", + "arrival": "2009-10-21T23:55:32.000+00:00", + "departure": "2009-10-21T23:55:32.000+00:00", + "lat": 45.525183, + "lon": -122.674607, + "name": "NW Everett & 4th", + "stopCode": "9546", + "stopId": "prt:9546", "vertexType": "TRANSIT", "zoneId": "0" }, - "generalizedCost": 286, + "generalizedCost": 77, "interlineWithPreviousLeg": false, - "legElevation": "0,29.3,13,29.5,23,29.5,33,29.5,43,29.5,53,29.5,63,29.4,73,29.4,83,29.3,88,29.2,98,29.4,108,29.5,118,29.5,128,29.5,138,29.5,148,29.4,161,29.3,170,29.3,180,29.5,188,29.6", + "legElevation": "0,29.5,10,29.5,20,29.5,30,29.5,40,29.6,50,29.6", "legGeometry": { - "length": 15, - "points": "}rztGlnwkVM??C?[?SC_D?M?E?MCgD?A?O?C?M?a@" + "length": 3, + "points": "ksztGh{vkVI?@~B" }, "mode": "WALK", "pathway": false, "realTime": false, "rentedBike": false, "route": "", - "startTime": "2009-10-21T23:52:00.000+00:00", + "startTime": "2009-10-21T23:55:32.000+00:00", "steps": [ { - "absoluteDirection": "EAST", - "area": false, - "bogusName": false, - "distance": 188.36, - "elevation": "0,29.3,13,29.5,26,29.5,36,29.5,46,29.5,56,29.5,66,29.5,76,29.4,86,29.4,96,29.3,101,29.2,111,29.4,121,29.5,131,29.5,141,29.5,151,29.5,161,29.4,174,29.3,183,29.3,193,29.5,201,29.6", - "lat": 45.5251827, - "lon": -122.6776666, + "absoluteDirection": "WEST", + "area": false, + "bogusName": false, + "distance": 49.94, + "elevation": "0,29.5,10,29.5,20,29.5,30,29.5,40,29.6,50,29.6", + "lat": 45.5252397, + "lon": -122.6746091, "relativeDirection": "DEPART", "stayOn": false, "streetName": "Northwest Everett Street", @@ -1997,7 +1849,7 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe } ], "to": { - "arrival": "2009-10-21T23:54:25.000+00:00", + "arrival": "2009-10-21T23:56:10.000+00:00", "lat": 45.52523, "lon": -122.67525, "name": "NW Everett St. & NW 5th Ave. (P3)", @@ -2007,21 +1859,21 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "walkingBike": false } ], - "startTime": "2009-10-21T23:35:53.000+00:00", + "startTime": "2009-10-21T23:39:30.000+00:00", "tooSloped": false, "transfers": 0, - "transitTime": 575, + "transitTime": 791, "waitingTime": 0, - "walkDistance": 733.83, + "walkDistance": 270.09, "walkLimitExceeded": false, - "walkTime": 537 + "walkTime": 209 }, { "arrivedAtDestinationWithRentedBicycle": false, - "duration": 1035, - "elevationGained": 5.01, - "elevationLost": 16.15, - "endTime": "2009-10-21T23:54:25.000+00:00", + "duration": 1112, + "elevationGained": 2.28, + "elevationLost": 13.43, + "endTime": "2009-10-22T00:03:25.000+00:00", "fare": { "coveringItinerary": [ { @@ -2075,41 +1927,41 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe } } }, - "generalizedCost": 2282, + "generalizedCost": 2235, "legs": [ { "agencyTimeZoneOffset": -25200000, "arrivalDelay": 0, "departureDelay": 0, - "distance": 106.59, - "endTime": "2009-10-21T23:39:48.000+00:00", + "distance": 545.48, + "endTime": "2009-10-21T23:51:25.000+00:00", "from": { - "departure": "2009-10-21T23:37:10.000+00:00", + "departure": "2009-10-21T23:44:53.000+00:00", "lat": 45.52832, "lon": -122.70059, "name": "SW Johnson St. & NW 24th Ave. (P1)", "vertexType": "NORMAL" }, - "generalizedCost": 304, + "generalizedCost": 773, "interlineWithPreviousLeg": false, - "legElevation": "0,63.7,9,64.1,19,64.7,29,65.2,39,65.8,49,66.3,59,66.8,69,67.2,79,67.4,93,66.6,107,66.2", + "legElevation": "0,63.7,1,63.7,11,63.2,21,62.9,31,62.7,41,62.3,51,62.0,61,61.6,71,61.3,81,61.0,91,60.5,101,60.1,111,59.7,121,59.5,131,59.4,142,59.1,152,58.9,160,58.8,170,58.5,180,58.2,190,58.1,200,57.9,210,57.6,220,57.3,230,57.0,240,56.7,250,56.5,260,56.3,270,55.9,280,55.6,290,55.3,300,55.0,310,54.7,319,54.5,329,54.2,339,53.9,349,53.6,359,53.4,369,53.2,379,52.8,389,52.5,399,52.2,409,51.9,419,51.6,429,51.6,439,51.5,449,51.2,459,51.1,469,50.9,476,50.7,486,50.9,496,51.2,506,51.4,516,51.7,526,51.9,536,52.2,545,52.4", "legGeometry": { - "length": 4, - "points": "}f{tGv}{kVjCA?e@WA" + "length": 9, + "points": "}f{tGv}{kVC?EiJ?k@GwKGsKL?nBC?H" }, "mode": "WALK", "pathway": false, "realTime": false, "rentedBike": false, "route": "", - "startTime": "2009-10-21T23:37:10.000+00:00", + "startTime": "2009-10-21T23:44:53.000+00:00", "steps": [ { - "absoluteDirection": "SOUTH", + "absoluteDirection": "NORTH", "area": false, "bogusName": false, - "distance": 78.53, - "elevation": "0,63.7,9,64.1,19,64.7,29,65.2,39,65.8,49,66.3,59,66.8,69,67.2,79,67.4", + "distance": 1.42, + "elevation": "0,63.7,1,63.7", "lat": 45.5283199, "lon": -122.7005963, "relativeDirection": "DEPART", @@ -2121,171 +1973,23 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "absoluteDirection": "EAST", "area": false, "bogusName": false, - "distance": 14.7, - "elevation": "0,67.4,15,66.6", - "lat": 45.5276138, - "lon": -122.700581, - "relativeDirection": "LEFT", + "distance": 474.52, + "elevation": "0,63.7,10,63.2,20,62.9,30,62.7,40,62.3,50,62.0,60,61.6,70,61.3,80,61.0,90,60.5,100,60.1,110,59.7,120,59.5,130,59.4,141,59.1,151,58.9,158,58.8,168,58.5,178,58.2,188,58.1,198,57.9,208,57.6,218,57.3,228,57.0,238,56.7,248,56.5,258,56.3,268,55.9,278,55.6,288,55.3,298,55.0,308,54.7,317,54.5,327,54.2,337,53.9,347,53.6,357,53.4,367,53.2,377,52.8,387,52.5,397,52.2,407,51.9,417,51.6,427,51.6,437,51.5,447,51.2,457,51.1,467,50.9,475,50.7", + "lat": 45.5283327, + "lon": -122.7005966, + "relativeDirection": "RIGHT", "stayOn": false, - "streetName": "Northwest Irving Street", + "streetName": "Northwest Johnson Street", "walkingBike": false }, - { - "absoluteDirection": "NORTH", - "area": false, - "bogusName": true, - "distance": 13.36, - "elevation": "0,66.6,13,66.2", - "lat": 45.5276173, - "lon": -122.7003923, - "relativeDirection": "LEFT", - "stayOn": false, - "streetName": "path", - "walkingBike": false - } - ], - "to": { - "arrival": "2009-10-21T23:39:48.000+00:00", - "bikeShareId": "-102309", - "departure": "2009-10-21T23:39:48.000+00:00", - "lat": 45.5277374, - "lon": -122.7003879, - "name": "-102309", - "networks": [ - "test-network" - ], - "vertexType": "BIKESHARE" - }, - "transitLeg": false, - "walkingBike": false - }, - { - "agencyTimeZoneOffset": -25200000, - "arrivalDelay": 0, - "departureDelay": 0, - "distance": 493.43, - "endTime": "2009-10-21T23:41:57.000+00:00", - "from": { - "arrival": "2009-10-21T23:39:48.000+00:00", - "bikeShareId": "-102309", - "departure": "2009-10-21T23:39:48.000+00:00", - "lat": 45.5277374, - "lon": -122.7003879, - "name": "-102309", - "networks": [ - "test-network" - ], - "vertexType": "BIKESHARE" - }, - "generalizedCost": 464, - "interlineWithPreviousLeg": false, - "legElevation": "0,66.2,13,66.6,23,65.7,33,64.9,43,64.1,53,63.1,63,62.5,73,62.5,83,62.1,93,61.9,103,61.7,113,61.4,123,61.1,133,60.9,143,60.6,158,60.2,168,59.9,178,59.6,188,59.3,198,59.0,208,58.7,218,58.4,228,58.1,238,57.8,248,57.5,258,57.1,268,56.8,278,56.6,288,56.4,298,56.2,308,55.9,316,55.7,326,55.5,336,55.3,346,55.0,356,54.7,366,54.4,376,54.1,386,53.8,396,53.6,406,53.5,416,53.3,426,53.3,440,53.0,450,52.9,460,52.8,474,52.6,484,52.4,493,52.2", - "legGeometry": { - "length": 7, - "points": "ic{tGl|{kVV@GsJEuKE}HAwAAo@" - }, - "mode": "BICYCLE", - "pathway": false, - "realTime": false, - "rentedBike": true, - "route": "", - "startTime": "2009-10-21T23:39:48.000+00:00", - "steps": [ { "absoluteDirection": "SOUTH", "area": false, - "bogusName": true, - "distance": 13.36, - "elevation": "0,66.2,13,66.6", - "lat": 45.5277374, - "lon": -122.7003879, - "relativeDirection": "HARD_RIGHT", - "stayOn": false, - "streetName": "path", - "walkingBike": true - }, - { - "absoluteDirection": "EAST", - "area": false, - "bogusName": false, - "distance": 480.08, - "elevation": "0,66.6,10,65.7,20,64.9,30,64.1,40,63.1,50,62.5,60,62.5,70,62.1,80,61.9,90,61.7,100,61.4,110,61.1,120,60.9,130,60.6,145,60.2,289,60.2,299,59.9,309,59.6,319,59.3,329,59.0,339,58.7,349,58.4,359,58.1,369,57.8,379,57.5,389,57.1,399,56.8,409,56.6,419,56.4,429,56.2,439,55.9,447,55.7,457,55.5,467,55.3,477,55.0,487,54.7,497,54.4,507,54.1,517,53.8,527,53.6,537,53.5,547,53.3,557,53.3,571,53.0,581,52.9,591,52.8,605,52.6,615,52.4,625,52.2", - "lat": 45.5276173, - "lon": -122.7003923, - "relativeDirection": "LEFT", - "stayOn": false, - "streetName": "Northwest Irving Street", - "walkingBike": false - } - ], - "to": { - "arrival": "2009-10-21T23:41:57.000+00:00", - "bikeShareId": "-102323", - "departure": "2009-10-21T23:41:57.000+00:00", - "lat": 45.5278491, - "lon": -122.6942362, - "name": "-102323", - "networks": [ - "test-network" - ], - "vertexType": "BIKESHARE" - }, - "transitLeg": false, - "walkingBike": false - }, - { - "agencyTimeZoneOffset": -25200000, - "arrivalDelay": 0, - "departureDelay": 0, - "distance": 29.46, - "endTime": "2009-10-21T23:42:25.000+00:00", - "from": { - "arrival": "2009-10-21T23:41:57.000+00:00", - "bikeShareId": "-102323", - "departure": "2009-10-21T23:41:57.000+00:00", - "lat": 45.5278491, - "lon": -122.6942362, - "name": "-102323", - "networks": [ - "test-network" - ], - "vertexType": "BIKESHARE" - }, - "generalizedCost": 50, - "interlineWithPreviousLeg": false, - "legElevation": "0,52.2,2,52.2,12,52.5,19,52.6,29,52.4", - "legGeometry": { - "length": 5, - "points": "ic{tG~uzkV@n@M@C??H" - }, - "mode": "WALK", - "pathway": false, - "realTime": false, - "rentedBike": false, - "route": "", - "startTime": "2009-10-21T23:41:57.000+00:00", - "steps": [ - { - "absoluteDirection": "WEST", - "area": false, "bogusName": false, - "distance": 19.29, - "elevation": "0,52.2,2,52.2,12,52.5,19,52.6", - "lat": 45.5277322, - "lon": -122.6942318, - "relativeDirection": "HARD_LEFT", - "stayOn": false, - "streetName": "Northwest Irving Street", - "walkingBike": false - }, - { - "absoluteDirection": "NORTH", - "area": false, - "bogusName": false, - "distance": 10.17, - "elevation": "0,52.6,10,52.4", - "lat": 45.5277276, - "lon": -122.6944793, + "distance": 69.54, + "elevation": "0,50.7,10,50.9,20,51.2,30,51.4,40,51.7,50,51.9,60,52.2,70,52.4", + "lat": 45.5284442, + "lon": -122.6945071, "relativeDirection": "RIGHT", "stayOn": false, "streetName": "Northwest 21st Avenue", @@ -2293,8 +1997,8 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe } ], "to": { - "arrival": "2009-10-21T23:42:25.000+00:00", - "departure": "2009-10-21T23:42:25.000+00:00", + "arrival": "2009-10-21T23:51:25.000+00:00", + "departure": "2009-10-21T23:51:25.000+00:00", "lat": 45.527818, "lon": -122.694539, "name": "NW 21st & Irving", @@ -2314,17 +2018,17 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "arrivalDelay": 0, "departureDelay": 0, "distance": 1629.43, - "endTime": "2009-10-21T23:52:00.000+00:00", + "endTime": "2009-10-22T00:01:00.000+00:00", "from": { - "arrival": "2009-10-21T23:42:25.000+00:00", - "departure": "2009-10-21T23:42:25.000+00:00", + "arrival": "2009-10-21T23:51:25.000+00:00", + "departure": "2009-10-21T23:51:25.000+00:00", "lat": 45.527818, "lon": -122.694539, "name": "NW 21st & Irving", "stopCode": "7114", "stopId": "prt:7114", - "stopIndex": 50, - "stopSequence": 51, + "stopIndex": 8, + "stopSequence": 9, "vertexType": "TRANSIT", "zoneId": "1" }, @@ -2333,80 +2037,80 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "interlineWithPreviousLeg": false, "intermediateStops": [ { - "arrival": "2009-10-21T23:43:20.000+00:00", - "departure": "2009-10-21T23:43:20.000+00:00", + "arrival": "2009-10-21T23:52:20.000+00:00", + "departure": "2009-10-21T23:52:20.000+00:00", "lat": 45.526408, "lon": -122.694503, "name": "NW 21st & Glisan", "stopCode": "7112", "stopId": "prt:7112", - "stopIndex": 51, - "stopSequence": 52, + "stopIndex": 9, + "stopSequence": 10, "vertexType": "TRANSIT", "zoneId": "1" }, { - "arrival": "2009-10-21T23:44:31.000+00:00", - "departure": "2009-10-21T23:44:31.000+00:00", + "arrival": "2009-10-21T23:53:31.000+00:00", + "departure": "2009-10-21T23:53:31.000+00:00", "lat": 45.524833, "lon": -122.69398, "name": "NW Everett & 21st", "stopCode": "1615", "stopId": "prt:1615", - "stopIndex": 52, - "stopSequence": 53, + "stopIndex": 10, + "stopSequence": 11, "vertexType": "TRANSIT", "zoneId": "1" }, { - "arrival": "2009-10-21T23:46:07.000+00:00", - "departure": "2009-10-21T23:46:07.000+00:00", + "arrival": "2009-10-21T23:55:07.000+00:00", + "departure": "2009-10-21T23:55:07.000+00:00", "lat": 45.524935, "lon": -122.690502, "name": "NW Everett & 19th", "stopCode": "1611", "stopId": "prt:1611", - "stopIndex": 53, - "stopSequence": 54, + "stopIndex": 11, + "stopSequence": 12, "vertexType": "TRANSIT", "zoneId": "1" }, { - "arrival": "2009-10-21T23:48:28.000+00:00", - "departure": "2009-10-21T23:48:28.000+00:00", + "arrival": "2009-10-21T23:57:28.000+00:00", + "departure": "2009-10-21T23:57:28.000+00:00", "lat": 45.524981, "lon": -122.68537, "name": "NW Everett & 14th", "stopCode": "1608", "stopId": "prt:1608", - "stopIndex": 54, - "stopSequence": 55, + "stopIndex": 12, + "stopSequence": 13, "vertexType": "TRANSIT", "zoneId": "0" }, { - "arrival": "2009-10-21T23:50:04.000+00:00", - "departure": "2009-10-21T23:50:04.000+00:00", + "arrival": "2009-10-21T23:59:04.000+00:00", + "departure": "2009-10-21T23:59:04.000+00:00", "lat": 45.525061, "lon": -122.68187, "name": "NW Everett & 11th", "stopCode": "1607", "stopId": "prt:1607", - "stopIndex": 55, - "stopSequence": 56, + "stopIndex": 13, + "stopSequence": 14, "vertexType": "TRANSIT", "zoneId": "0" }, { - "arrival": "2009-10-21T23:51:15.000+00:00", - "departure": "2009-10-21T23:51:15.000+00:00", + "arrival": "2009-10-22T00:00:15.000+00:00", + "departure": "2009-10-22T00:00:15.000+00:00", "lat": 45.525096, "lon": -122.67929, "name": "NW Everett & Park", "stopCode": "8402", "stopId": "prt:8402", - "stopIndex": 56, - "stopSequence": 57, + "stopIndex": 14, + "stopSequence": 15, "vertexType": "TRANSIT", "zoneId": "0" } @@ -2424,34 +2128,34 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "routeShortName": "17", "routeType": 3, "serviceDate": "2009-10-21", - "startTime": "2009-10-21T23:42:25.000+00:00", + "startTime": "2009-10-21T23:51:25.000+00:00", "steps": [ ], "to": { - "arrival": "2009-10-21T23:52:00.000+00:00", - "departure": "2009-10-21T23:52:00.000+00:00", + "arrival": "2009-10-22T00:01:00.000+00:00", + "departure": "2009-10-22T00:01:00.000+00:00", "lat": 45.525112, "lon": -122.677664, "name": "NW Everett & Broadway", "stopCode": "1606", "stopId": "prt:1606", - "stopIndex": 57, - "stopSequence": 58, + "stopIndex": 15, + "stopSequence": 16, "vertexType": "TRANSIT", "zoneId": "0" }, "transitLeg": true, - "tripBlockId": "1705", - "tripId": "prt:170W1480" + "tripBlockId": "1717", + "tripId": "prt:170W1490" }, { "agencyTimeZoneOffset": -25200000, "arrivalDelay": 0, "departureDelay": 0, "distance": 188.35, - "endTime": "2009-10-21T23:54:25.000+00:00", + "endTime": "2009-10-22T00:03:25.000+00:00", "from": { - "arrival": "2009-10-21T23:52:00.000+00:00", - "departure": "2009-10-21T23:52:00.000+00:00", + "arrival": "2009-10-22T00:01:00.000+00:00", + "departure": "2009-10-22T00:01:00.000+00:00", "lat": 45.525112, "lon": -122.677664, "name": "NW Everett & Broadway", @@ -2472,7 +2176,7 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "realTime": false, "rentedBike": false, "route": "", - "startTime": "2009-10-21T23:52:00.000+00:00", + "startTime": "2009-10-22T00:01:00.000+00:00", "steps": [ { "absoluteDirection": "EAST", @@ -2489,7 +2193,7 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe } ], "to": { - "arrival": "2009-10-21T23:54:25.000+00:00", + "arrival": "2009-10-22T00:03:25.000+00:00", "lat": 45.52523, "lon": -122.67525, "name": "NW Everett St. & NW 5th Ave. (P3)", @@ -2499,14 +2203,14 @@ org.opentripplanner.routing.algorithm.mapping.ElevationSnapshotTest.accessBikeRe "walkingBike": false } ], - "startTime": "2009-10-21T23:37:10.000+00:00", + "startTime": "2009-10-21T23:44:53.000+00:00", "tooSloped": false, "transfers": 0, "transitTime": 575, "waitingTime": 0, - "walkDistance": 817.83, + "walkDistance": 733.83, "walkLimitExceeded": false, - "walkTime": 460 + "walkTime": 537 } ] ]