Un itinéraire en transports en commun fournit des instructions de navigation à l'aide des options de transports en commun disponibles dans la région. Les options de transports en commun peuvent inclure les bus, les métros et les trains, entre autres. Un itinéraire en transports en commun inclut généralement des instructions pour se rendre à pied à une station, en partir ou passer d'une station à une autre. Étant donné qu'un itinéraire en transports en commun nécessite généralement d'utiliser plusieurs modes de transport, la façon dont vous demandez l'itinéraire et certaines parties de la réponse sont différentes.
Différences entre les routes de transit et les autres routes
Les itinéraires en transports en commun, que vous demandez en définissant un travelMode sur TRANSIT, diffèrent des itinéraires utilisant d'autres options travelMode. Vous ne pouvez pas demander tous les mêmes objets et options, et la réponse renvoie des champs différents par rapport aux autres routes.
Dans l'API Routes, les étapes correspondent systématiquement à une instruction de navigation pour tous les types de trajets. Chaque instruction de navigation est donc une étape. Une réponse d'itinéraire en transports en commun est très semblable à celle d'itinéraires avec d'autres modes de transport, à quelques différences clés près :
| Différences au niveau des requêtes | Différences de réponse |
|---|---|
| Vous ne pouvez pas spécifier de points de cheminement intermédiaires. | Inclut les détails des transports en commun. |
| Impossible d'obtenir les itinéraires économes en carburant | Inclut les métadonnées de chaque mode de transport, qui contiennent le résumé des étapes pour ce mode de transport, dans "stepsOverview" (pour demander ces métadonnées, utilisez le masque de champ "routes.legs.stepsOverview"). |
| Impossible de spécifier si et comment inclure les données de trafic | |
| Impossible de spécifier les caractéristiques d'itinéraire à éviter | |
Vous ne pouvez spécifier que transitPreferences pour routingPreference. Pour en savoir plus, consultez TransitPreferences. |
Pour en savoir plus sur la réponse renvoyée par l'API Routes, consultez Examiner les réponses d'itinéraire en transports en commun.
Pour obtenir un itinéraire en transports en commun
Définissez votre point de départ et votre destination.
Définissez le mode de transport sur "transit" :
travelMode: "TRANSIT"Ajoutez un masque de champ pour obtenir les champs de réponse souhaités. Consultez Demander les champs d'itinéraire de transport en commun dont vous avez besoin.
Si nécessaire, définissez des paramètres facultatifs. Consultez Définir les paramètres d'une route de transit.
Demander les champs d'itinéraire de transport en commun dont vous avez besoin
Demandez les champs d'itinéraire de transport en commun dont vous avez besoin à l'aide de masques de champ. Le tableau suivant contient des suggestions de réponses pour un itinéraire en transports en commun, ainsi que le masque de champ à utiliser pour les demander.
| Pour demander ces informations | Utiliser ce masque de champ |
|---|---|
| Tous les détails de l'itinéraire | routes.* |
| Tous les détails sur les transports en commun | routes.legs.steps.transitDetails |
| Lieu de départ de chaque étape | routes.legs.steps.startLocation |
| Lieu d'arrivée de chaque étape | routes.legs.steps.endLocation |
| Polyligne d'itinéraire pour chaque étape | routes.legs.steps.polyline |
| Type de transport utilisé pour chaque étape | routes.legs.steps.travelMode |
| Tarif estimé pour chaque étape et l'itinéraire, et tarif estimé localisé | routes.travel_advisory.transitFare
localized routes.localizedValues.transitFare
Remarque : |
| Texte localisé pour la durée et la distance | routes.localizedValues |
Pour en savoir plus sur la définition de masques de champ, consultez Choisir les champs à renvoyer.
Définir les paramètres d'un itinéraire en transports en commun
Voici les paramètres pertinents pour les itinéraires en transports en commun :
| Pour ce faire : | Utiliser ce paramètre | Remarques |
|---|---|---|
| Sélectionner un mode de transport en commun | travelMode: "TRANSIT" |
Obligatoire. En savoir plus |
| Définir une heure d'arrivée ou de départ | "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"
OU "departureTime": "yyyy-mm-ddThh:mm:ssZ" |
Facultatif. Vous pouvez spécifier "arrival_time" ou "departure_time". Si aucune heure n'est spécifiée, departure_time est défini par défaut sur l'heure d'exécution actuelle (now). Vous ne pouvez définir les heures d'arrivée et de départ que dans la période suivante, en utilisant l'heure d'exécution actuelle (now) comme référence :
Remarque : Les horaires des transports en commun changent fréquemment. Les trajets disponibles peuvent évoluer au fil du temps, et il n'est pas garanti que les prédictions soient cohérentes longtemps à l'avance. |
| Inclure les itinéraires bis | "computeAlternativeRoutes": true |
Facultatif. Définissez cette option sur "true" pour que Compute Routes calcule jusqu'à trois itinéraires supplémentaires, lorsqu'ils sont disponibles. En savoir plus |
| Spécifier les préférences pour le type de transport en commun | "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}
Remarque : Si vous spécifiez un mode de transport préféré, les itinéraires renvoyés peuvent toujours utiliser d'autres modes de transport, voire n'utiliser que d'autres modes de transport, en fonction de l'efficacité de l'itinéraire et de la disponibilité du mode de transport préféré. |
Facultatif. Spécifiez les modes de transport en commun à privilégier. En savoir plus |
| Spécifier les préférences pour l'itinéraire en transports en commun | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
Facultatif. Spécifiez les préférences d'acheminement du transit. En savoir plus |
Exemple : Obtenir un itinéraire en transports en commun
L'exemple suivant obtient un itinéraire en transports en commun avec les paramètres suivants :
Spécifie les préférences pour les trajets en train et le moins de marche à pied.
Demande des itinéraires bis.
Fournit un masque de champ qui renvoie les détails du transport en commun :
curl -X POST -H 'content-type: application/json' -d '{ "origin": { "address": "Humberto Delgado Airport, Portugal" }, "destination": { "address": "Basílica of Estrela, Praça da Estrela, 1200-667 Lisboa, Portugal" }, "travelMode": "TRANSIT", "computeAlternativeRoutes": true, "transitPreferences": { routingPreference: "LESS_WALKING", allowedTravelModes: ["TRAIN"] }, }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.legs.steps.transitDetails' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
La réponse affiche les champs route.legs.steps.transitDetails pour les deux itinéraires :
{ "routes": [ { "legs": [ { "steps": [ {}, {}, {}, { "transitDetails": { "stopDetails": { "arrivalStop": { "name": "Saldanha", "location": { "latLng": { "latitude": 38.73532, "longitude": -9.14543 } } }, "arrivalTime": "2023-08-26T10:49:42Z", "departureStop": { "name": "Aeroporto", "location": { "latLng": { "latitude": 38.769047799999996, "longitude": -9.1284593 } } }, "departureTime": "2023-08-26T10:32:10Z" }, "localizedValues": { "arrivalTime": { "time": { "text": "11:49" }, "timeZone": "Europe/Lisbon" }, "departureTime": { "time": { "text": "11:32" }, "timeZone": "Europe/Lisbon" } }, "headsign": "São Sebastião", "transitLine": { "agencies": [ { "name": "Metropolitano de Lisboa, E.P.E.", "phoneNumber": "+351 21 350 0115", "uri": "https://www.metrolisboa.pt/" } ], "name": "Vermelha", "color": "#f23061", "nameShort": "Vm", "textColor": "#000000", "vehicle": { "name": { "text": "Metrô" }, "type": "SUBWAY", "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png" } }, "stopCount": 11 } }, {}, { "transitDetails": { "stopDetails": { "arrivalStop": { "name": "Rato", "location": { "latLng": { "latitude": 38.7201022, "longitude": -9.1540562 } } }, "arrivalTime": "2023-08-26T11:01:37Z", "departureStop": { "name": "Saldanha", "location": { "latLng": { "latitude": 38.73527, "longitude": -9.1455200000000012 } } }, "departureTime": "2023-08-26T10:57:57Z" }, "localizedValues": { "arrivalTime": { "time": { "text": "12:01" }, "timeZone": "Europe/Lisbon" }, "departureTime": { "time": { "text": "11:57" }, "timeZone": "Europe/Lisbon" } }, "headsign": "Rato", "transitLine": { "agencies": [ { "name": "Metropolitano de Lisboa, E.P.E.", "phoneNumber": "+351 21 350 0115", "uri": "https://www.metrolisboa.pt/" } ], "name": "Amarela", "color": "#f2c200", "nameShort": "Am", "textColor": "#000000", "vehicle": { "name": { "text": "Metrô" }, "type": "SUBWAY", "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png" } }, "stopCount": 4 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }