44import java .time .Instant ;
55import java .util .ArrayList ;
66import java .util .Collection ;
7- import java .util .List ;
87import java .util .OptionalInt ;
98import java .util .Set ;
109import org .opentripplanner .astar .spi .TraverseVisitor ;
@@ -48,10 +47,28 @@ Collection<NearbyStop> findStreetAccessEgresses(
4847 Set <Vertex > ignoreVertices ,
4948 float maxCarSpeed
5049 ) {
50+ var accessEgressRequest = getViaFriendlyRequest (request );
51+ var firstVertices = accessOrEgress .isAccess ()
52+ ? linkingContext .findVertices (accessEgressRequest .from ())
53+ : linkingContext .findVertices (accessEgressRequest .to ());
54+ var stopsFromFirstLocation = StreetNearbyStopFinder .of (
55+ stopResolver ,
56+ durationLimit ,
57+ maxStopCount
58+ )
59+ .withIgnoreVertices (ignoreVertices )
60+ .withExtensionRequestContexts (extensionRequestContexts )
61+ .build ()
62+ .findNearbyStops (
63+ firstVertices ,
64+ accessEgressRequest ,
65+ streetRequest ,
66+ accessOrEgress .isEgress ()
67+ );
5168 var lastViaWithCoordinates = lastCoordinateViaLocationIndex (request , accessOrEgress );
5269 // There are no coordinate locations to route to/from
5370 if (lastViaWithCoordinates .isEmpty ()) {
54- return List . of () ;
71+ return stopsFromFirstLocation ;
5572 }
5673 var graphPathFinder = new GraphPathFinder (
5774 traverseVisitor ,
@@ -63,13 +80,13 @@ Collection<NearbyStop> findStreetAccessEgresses(
6380 accessOrEgress ,
6481 lastViaWithCoordinates .getAsInt ()
6582 );
66- var accessEgressRequest = getViaFriendlyRequest (request );
6783 return accessOrEgress .isAccess ()
6884 ? findStreetAccesses (
6985 accessEgressRequest ,
7086 directRequest ,
7187 streetRequest ,
7288 extensionRequestContexts ,
89+ stopsFromFirstLocation ,
7390 durationLimit ,
7491 maxStopCount ,
7592 linkingContext ,
@@ -81,6 +98,7 @@ Collection<NearbyStop> findStreetAccessEgresses(
8198 directRequest ,
8299 streetRequest ,
83100 extensionRequestContexts ,
101+ stopsFromFirstLocation ,
84102 durationLimit ,
85103 maxStopCount ,
86104 linkingContext ,
@@ -94,19 +112,14 @@ private Collection<NearbyStop> findStreetAccesses(
94112 RouteRequest directRequest ,
95113 StreetRequest streetRequest ,
96114 Collection <ExtensionRequestContext > extensionRequestContexts ,
115+ Collection <NearbyStop > stopsFromFirstLocation ,
97116 Duration durationLimit ,
98117 int maxStopCount ,
99118 LinkingContext linkingContext ,
100119 Set <Vertex > ignoreVertices ,
101120 GraphPathFinder graphPathFinder
102121 ) {
103- var originVertices = linkingContext .findVertices (accessEgressRequest .from ());
104- var stopsFromOrigin = StreetNearbyStopFinder .of (stopResolver , durationLimit , maxStopCount )
105- .withIgnoreVertices (ignoreVertices )
106- .withExtensionRequestContexts (extensionRequestContexts )
107- .build ()
108- .findNearbyStops (originVertices , accessEgressRequest , streetRequest , false );
109- var nearbyStops = new ArrayList <>(stopsFromOrigin );
122+ var nearbyStops = new ArrayList <>(stopsFromFirstLocation );
110123 var paths = directRouter .findDepartAfterPaths (
111124 linkingContext ,
112125 graphPathFinder ,
@@ -156,19 +169,14 @@ private Collection<NearbyStop> findStreetEgresses(
156169 RouteRequest directRequest ,
157170 StreetRequest streetRequest ,
158171 Collection <ExtensionRequestContext > extensionRequestContexts ,
172+ Collection <NearbyStop > stopsFromFirstLocation ,
159173 Duration durationLimit ,
160174 int maxStopCount ,
161175 LinkingContext linkingContext ,
162176 Set <Vertex > ignoreVertices ,
163177 GraphPathFinder graphPathFinder
164178 ) {
165- var originVertices = linkingContext .findVertices (accessEgressRequest .to ());
166- var stopsFromOrigin = StreetNearbyStopFinder .of (stopResolver , durationLimit , maxStopCount )
167- .withIgnoreVertices (ignoreVertices )
168- .withExtensionRequestContexts (extensionRequestContexts )
169- .build ()
170- .findNearbyStops (originVertices , accessEgressRequest , streetRequest , true );
171- var nearbyStops = new ArrayList <>(stopsFromOrigin );
179+ var nearbyStops = new ArrayList <>(stopsFromFirstLocation );
172180 var paths = directRouter .findArriveByPaths (
173181 linkingContext ,
174182 graphPathFinder ,
0 commit comments