I am currently administering a GTFS feed for a metro (subway) Agency. The underground stations have multiple exits to the surface. To my knowledge, it is possible to instruct GTFS consuming applications to specify the most appropriate exit for their route. I have implemented as follows:
All stations are „described” by multiple stop_ids, with the following parameters:
- Example Stop - general stop with location_type=1, we'll refer to it as „Main ID”
- Example Stop Platform 1, location_type=0, platform_code=1, parent_station=Main ID
- Example Stop Platform 2, location_type=0, platform_code=2, parent_station=Main ID
- Example Stop Exit A, location_type=2, parent_station=Main ID
- Example Stop Exit B, location_type=2, parent_station=Main ID
- Example Stop Exit C, location_type=2, parent_station=Main ID
Trip stop_times indicate them as stopping in Example Stop Platform 1 and Example Stop Platform 2 respectively.
Upon testing the feed as constructed above with consuming apps, it doesn't fully do what I intended.
With „Example Stop” being tested as a trip starting and finishing point, the platforms work correctly but the exits not quite. Planning results are of the form „Enter Example Stop at Example Stop Exit A (entering and exiting stations is always suggested through exit A, even if exit A is farther away from the starting / finishing point, even though exit B would have been much closer), board vehicle from platform 1/2 (correct)”.
So it seems like only one stop exit is always used, regardless of what would be more appropriate for the user's itinerary. Now the exits are only linked to the stops referenced in stop_times by having the same parent_station.
Do you have any thoughts on what should I do to solve this issue? Do I need to generate the pathways.txt
(as described here
) file and link the exits to their corresponding stops...? And if that's the case, what should they link to? Towards each platform (all exits can be accessed from both platforms) or to the main station ID (which has no stops).
Could anyone give insight on how to properly implement this or point to a feed example which would clarify my unknown details? Thanks!