Transit Routing Approach
When calculating transit-based reachable areas, Targomo’s routing engine attempts to explore all possible routes in all directions. It is based on Dijkstra’s algorithm which is then adapted for our data sources and for transit in general.
- Firstly, the road network is routed from all sources.
- Upon encountering any transit stop, the transit network is entered for routing.
- The transit network is then routed in all directions. At any new stop transit is exited and then walking is used again until
maxEdgeWeight
is reached. Transit is not entered again after exiting. - At any point, either in the street network or in the transit network (a point of a connection in the transit network is the transit stop plus the time of the connection), only the shortest path is kept and all other paths are discarded (see Dijkstra). This is the resulting path to this point.
- When entering the transit network, all connections inside the transit frame are used to start the routing in the transit routing. Which means that the final routes are the shortest routes possible in the time frame.
- A transfer in the transit network can happen when it’s either explicitly defined in the data or at the same stop (or connected stops) and below
minTransferTime
. For that we connect nearby stops from different data sources to enable transferring between transit networks. - When determining the shortest route at a point, a small penalty is added for each transfer so that routes with less transfers are prioritized. When creating isochrone polygons, the time of final route (i.e. the shortest route) at each point of the source street network is used.