Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Une correspondance en bloc, également appelée correspondance sans changement, est disponible lorsqu'un ensemble de trajets répond aux conditions suivantes :
Les trajets sont consécutifs.
Le même véhicule effectue les deux trajets.
La même valeur block_id est attribuée aux trajets dans le fichier trips.txt du flux de transports en commun.
Conditions préalables
Pour que Google Maps détecte que les correspondances en bloc entre trajets sont possibles, les conditions préalables suivantes doivent être remplies :
La même valeur block_id doit être présente dans trips.txt pour chaque trajet. Cela signifie qu'il s'agit du même véhicule.
Les trajets doivent avoir lieu le même jour ou sur des jours consécutifs s'ils durent au-delà de minuit.
Les trajets doivent être consécutifs et ne pas se chevaucher.
Le dernier arrêt du trajet d'arrivée et le premier du trajet de départ doivent être les mêmes (recommandé) ou être proches l'un de l'autre.
Utiliser block_id pour activer les correspondances en bloc
Les correspondances en bloc peuvent être effectuées entre des trajets consécutifs sur des itinéraires différents ou sur le même itinéraire s'il s'agit d'une ligne circulaire. Utilisez le champ block_id pour indiquer quels trajets font partie d'un bloc et où les correspondances sans changement sont une option disponible.
Exemple 1 : correspondances en bloc pour des trajets planifiés
Dans cet exemple, on considère les valeurs suivantes dans chaque fichier :
trips.txt
route_id
trip_id
block_id
RouteA
RouteATrip1
Block1
RouteB
RouteBTrip1
Block1
stop_times.txt
trip_id
arrival_time
departure_time
stop_id
stop_sequence
RouteATrip1
12:00:00
12:01:00
A
1
RouteATrip1
12:05:00
12:06:00
B
2
RouteATrip1
12:15:00
C
3
RouteBTrip1
12:18:00
C
1
RouteBTrip1
12:22:00
12:23:00
D
2
RouteBTrip1
12:30:00
E
3
Dans cet exemple :
Un utilisateur qui recherche un itinéraire de l'arrêt A à l'arrêt E est invité à embarquer à l'arrêt A à 12:00 sur l'itinéraire A et à rester dans le véhicule lorsqu'il atteint l'arrêt C à la fin de RouteATrip1. En effet, le même véhicule dessert RouteBTrip1 pour l'itinéraire B.
Les passagers de RouteATrip1 qui souhaitent poursuivre leur trajet jusqu'à un arrêt de RouteBTrip1 peuvent rester dans le véhicule pour cette correspondance.
Cette option n'est pas proposée aux passagers d'autres trajets à bord d'autres véhicules de ces mêmes itinéraires, car les véhicules sont différents pour chaque trajet.
Exemple 2 : correspondances en bloc pour des trajets calculés en fonction de la fréquence de passage
Les correspondances en bloc ne sont prises en charge que pour des trajets calculés en fonction de la fréquence de passage qui remplissent l'une des conditions suivantes, en plus des exigences énumérées dans la section Prérequis :
Si le trajet est une boucle, il doit commencer et finir au même arrêt.
Dans frequencies.txt, la valeur du champ exact_times doit être 1.
L'exemple suivant décrit comment définir les valeurs de la deuxième condition :
trips.txt
route_id
trip_id
block_id
route1
route1_trip1
block_2
route2
route2_trip1
block_2
stop_times.txt
trip_id
arrival_time
departure_time
stop_id
stop_sequence
route1_trip1
08:00:00
08:04:00
stop1
1
route1_trip1
08:10:00
08:14:00
stop2
2
route1_trip1
08:20:00
stop3
3
route2_trip1
08:24:00
stop3
1
route2_trip1
08:30:00
08:34:00
stop4
2
route2_trip1
08:40:00
08:44:00
stop5
3
frequencies.txt
trip_id
start_time
end_time
headway_secs
exact_times
route1_trip1
08:00:00
08:20:00
600
1
route2_trip1
08:24:00
08:44:00
600
1
Dans cet exemple :
Un utilisateur qui recherche un itinéraire de stop1 à stop5 est invité à embarquer à stop1 à 08:00 le route1. L'utilisateur reste ensuite dans le véhicule lorsqu'il atteint stop3 à la fin de route1_trip1. En effet, le même véhicule dessert route2_trip1 pour route2.
Les passagers de route1_trip1 qui souhaitent poursuivre leur trajet jusqu'à un arrêt de route2_trip1 peuvent rester dans le véhicule pour cette correspondance.
Cette option n'est pas proposée aux passagers d'autres trajets à bord d'autres véhicules de ces mêmes itinéraires, car les véhicules sont différents pour chaque trajet.
Prenons route1_trip1 comme exemple. La valeur de headway_secs est la moitié de l'intervalle entre start_time et end_time. Dans ce cas, cela signifie qu'il y a deux trajets. Pour découvrir comment utiliser headway_secs, consultez les références sur les horaires GTFS sur gtfs.org.
Correspondance en bloc dans une ligne circulaire
Dans une ligne circulaire, le premier et le dernier arrêt d'un trajet sont identiques et ont le même stop_id (obligatoire pour les trajets basés sur des horaires et les trajets basés sur la fréquence).
Si les trajets en boucle consécutifs sont associés au même block_id, la correspondance en bloc (ou sans changement) est autorisée, ce qui permet aux passagers du premier trajet de rester dans le véhicule lorsque celui-ci entame la boucle suivante.
Blocs valides dans les flux GTFS
Pour que la correspondance en bloc soit possible, vous devez définir correctement un ou plusieurs blocs dans le flux. Pour être validés, les trajets qui appartiennent au même bloc ne doivent pas se chevaucher et doivent posséder le même route_type (métro, train, bus, etc.).
Les trajets peuvent appartenir au même bloc même s'ils recouvrent des jours différents. Lorsque des blocs sont définis dans un flux statique, ils apparaissent dans le rapport de validation, dans l'onglet Aperçu.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/25 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/25 (UTC)."],[[["\u003cp\u003eBlock transfers, or in-seat transfers, allow passengers to stay on the same vehicle across consecutive trips using the same \u003ccode\u003eblock_id\u003c/code\u003e in \u003ccode\u003etrips.txt\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eTo enable block transfers, trips must use the same \u003ccode\u003eblock_id\u003c/code\u003e, operate on the same or consecutive days, be consecutive without overlapping, and have the last/first stops be the same or nearby.\u003c/p\u003e\n"],["\u003cp\u003eBlock transfers work with frequency-based trips if they are loops starting and ending at the same stop, or if \u003ccode\u003eexact_times\u003c/code\u003e is set to \u003ccode\u003e1\u003c/code\u003e in \u003ccode\u003efrequencies.txt\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIn loop lines, consecutive trips with the same \u003ccode\u003eblock_id\u003c/code\u003e enable in-seat transfers for passengers to remain on the vehicle for the next loop.\u003c/p\u003e\n"],["\u003cp\u003eValid blocks in GTFS feeds require trips within the same block to be non-overlapping, have the same \u003ccode\u003eroute_type\u003c/code\u003e, and can span across different days.\u003c/p\u003e\n"]]],["Block transfers, or in-seat transfers, require consecutive trips using the same vehicle, indicated by the same `block_id` in `trips.txt`. Trips must operate on the same or consecutive days, not overlap, and their start/end stops should be the same or close. Frequency-based trips must have `exact_times=1` in `frequencies.txt`. Loop line trips require identical start and end stops. Correctly defining blocks enables transfers, verified in a feed's Validation Report. Google does not support linked trips via transfer_type 4 or 5.\n"],null,["# Block transfer example\n\n| **Note:** To make block transfer an available option, you need to use `block_id` in `trips.txt`. Google doesn't support the [linked trips](https://gtfs.org/schedule/reference/#linked-trips) feature through `transfer_type` values of `4` or `5`.\n\nBlock transfer, also called in-seat transfer, is available when a set of\ntrips meets the following conditions:\n\n1. The trips are consecutive.\n2. The same vehicle operates both trips.\n3. The trips are provisioned with the same `block_id` value in the `trips.txt` file in the transit feed.\n\nPrerequisites\n-------------\n\nFor Google Maps to recognize that block transfers between trips are\npossible, the following prerequisites must be met:\n\n1. The trips must use the same `block_id` value in `trips.txt`. This indicates that the trips use the same vehicle.\n2. The trips must operate on the same days, or on consecutive days if a trip crosses midnight.\n3. The trips must be consecutive and not overlap.\n4. The last stop of the arriving trip and the first stop of the departing trip must either be the same (recommended) or physically close.\n\nUse `block_id` to enable block transfers\n----------------------------------------\n\nBlock transfers can be made between consecutive trips on different routes or on\nthe same route if the route is a loop line. Use the `block_id` field to specify\nwhich trips are in one block and where in-seat transfers are an available\noption.\n\n### Example 1: Block transfers for scheduled trips\n\nIn this example, consider the following values in each file:\n\n`trips.txt`\n\n| `route_id` | `trip_id` | `block_id` |\n|------------|---------------|------------|\n| `RouteA` | `RouteATrip1` | `Block1` |\n| `RouteB` | `RouteBTrip1` | `Block1` |\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\n`stop_times.txt`\n\n| `trip_id` | `arrival_time` | `departure_time` | `stop_id` | `stop_sequence` |\n|---------------|----------------|------------------|-----------|-----------------|\n| `RouteATrip1` | `12:00:00` | `12:01:00` | `A` | `1` |\n| `RouteATrip1` | `12:05:00` | `12:06:00` | `B` | `2` |\n| `RouteATrip1` | `12:15:00` | | `C` | `3` |\n| `RouteBTrip1` | | `12:18:00` | `C` | `1` |\n| `RouteBTrip1` | `12:22:00` | `12:23:00` | `D` | `2` |\n| `RouteBTrip1` | `12:30:00` | | `E` | `3` |\n\n\u003cbr /\u003e\n\nIn this example:\n\n- A user who searches for a route from stop A to stop E is directed to embark at stop A at 12:00 on Route A and to stay on the vehicle when it reaches stop C after the end of `RouteATrip1`. This is because the same vehicle services `RouteBTrip1` for Route B.\n- Passengers on `RouteATrip1` who want to continue on to a stop on `RouteBTrip1` can stay on the vehicle for this transfer.\n- Passengers of other trips on other vehicles along these same routes don't have this option because they use different vehicles for each trip.\n\n### Example 2: Block transfers for frequency-based trips with exact times\n\nBlock transfers are supported only for frequency-based trips that meet one of\nthe following conditions, in addition to the requirements listed in the\n[Prerequisites](#prerequisites) section:\n\n- If the trip is a loop, it must start and end at the same stop.\n- In `frequencies.txt`, the value of the `exact_times` field must be `1`.\n\nThe following example describes how to set the values for the second condition:\n\n`trips.txt`\n\n| `route_id` | `trip_id` | `block_id` |\n|------------|----------------|------------|\n| `route1` | `route1_trip1` | `block_2` |\n| `route2` | `route2_trip1` | `block_2` |\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\n`stop_times.txt`\n\n| `trip_id` | `arrival_time` | `departure_time` | `stop_id` | `stop_sequence` |\n|----------------|----------------|------------------|-----------|-----------------|\n| `route1_trip1` | `08:00:00` | `08:04:00` | `stop1` | `1` |\n| `route1_trip1` | `08:10:00` | `08:14:00` | `stop2` | `2` |\n| `route1_trip1` | `08:20:00` | | `stop3` | `3` |\n| `route2_trip1` | | `08:24:00` | `stop3` | `1` |\n| `route2_trip1` | `08:30:00` | `08:34:00` | `stop4` | `2` |\n| `route2_trip1` | `08:40:00` | `08:44:00` | `stop5` | `3` |\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\n`frequencies.txt`\n\n| `trip_id` | `start_time` | `end_time` | `headway_secs` | `exact_times` |\n|----------------|--------------|------------|----------------|---------------|\n| `route1_trip1` | `08:00:00` | `08:20:00` | `600` | `1` |\n| `route2_trip1` | `08:24:00` | `08:44:00` | `600` | `1` |\n\n\u003cbr /\u003e\n\nIn this example:\n\n- A user who searches for a route from `stop1` to `stop5` is directed to embark at `stop1` at 08:00 on `route1`. The user then stays on the vehicle when it reaches `stop3` after the end of `route1_trip1`. This is because the same vehicle services `route2_trip1` for `route2`.\n- Passengers on `route1_trip1` who want to continue on to a stop on `route2_trip1` can stay on the vehicle for this transfer.\n- Passengers of other trips on other vehicles along these same routes don't have this option because they use different vehicles for each trip.\n- Take `route1_trip1` for example. The value of `headway_secs` is half the interval between `start_time` and `end_time`. In this case, it means there are two trips. To learn more about the usage of `headway_secs`, refer to the [GTFS Schedule Reference on\n gtfs.org](https://gtfs.org/schedule/reference/#frequenciestxt).\n\nBlock transfer in a loop line\n-----------------------------\n\nIn a loop line, the first stop and the last stop of a trip are the same and have\nthe same `stop_id`. This is required for both schedule-based and frequency-based\ntrips.\n\nProvided that consecutive loop trips have the same `block_id`, block or in-seat\ntransfer is enabled, which lets passengers of the first trip remain on the\nvehicle when it continues on the next loop.\n\nValid blocks in GTFS feeds\n--------------------------\n\nFor block transfer to be possible, you must properly define one or more blocks\nin the feed. To pass validation, trips that belong to the same block can't\noverlap and must have the same `route_type` (subway, rail, bus, and so forth).\nTrips can belong to the same block even if they're on different days. If any\nblocks are defined in a static feed, they show in the Validation Report, on the\n**Overview** tab.\n| **Note:** The feed validator only checks the integrity of the feed. It doesn't check for any of the other conditions that make block transfer possible."]]