Trip planners normally calculate transfer points based on the relative proximity of stops in each route. For potentially ambiguous stop pairs, or transfers where you want to specify a particular choice, use the transfers.txt
file to define additional rules for making connections between routes.
The transfers.txt
feed has the following structure:
The following example shows a simple transfers.txt
feed:
from_stop_id,to_stop_id,transfer_type,min_transfer_time
S6,S7,2,300
S7,S6,3,
S23,S7,1,
You can define the following types of connections for a pair of stops (from_stop_id
, to_stop_id
). To describe connections at the same stop, use the same stop_id
for both from_stop_id
and to_stop_id
.
-
Recommended transfer point between two routes: If multiple transfer points are possible, this one is preferred in routing results (
transfer_type 0
). -
Timed transfer point between two routes: In this case, the departing vehicle is expected to wait for the arriving one, with sufficient time for a passenger to transfer between routes (
transfer_type 1
). -
Minimum transfer times: Use this for a transfer that requires a minimum amount of time between arrival and departure to ensure a connection (
transfer_type 2
). The time required to transfer is specified bymin_transfer_time
. -
Inappropriate transfer point: Transfers are not possible between routes at this location (
transfer_type 3
).
Default transfer times and paths
If transfer_type is set to 1, Google Maps calculates the amount of time to allow for a particular transfer. This value takes into consideration many different parameters and is different for each pair of stop. If the transfer is between different stops, the calculated transfer time includes an estimate of the time to walk between the stops.
If you prefer, you can specify the minimum amount of time to allow for a particular transfer. Set transfer_type to 2 and min_transfer_time to the number of seconds to allow.
Complex transfers
Google’s GTFS Extension supports complex transportation systems where transfers are not only relevant at the stop level, but also at the route or trip level. Examples of complex transfers include:
- If one bus route waits for another one but not all routes wait for each other
- If some routes depart from a distant platform and require longer transfer times
The extension allows you to define route-to-route and trip-to-trip transfers. However, we prefer that transfers be described as generally as possible.