Un itinéraire en transports en commun fournit des instructions de navigation à l'aide des options de transport en commun disponibles dans la région. Les options de transport en commun peuvent inclure le bus, le métro et le train, entre autres. Un itinéraire en transports en commun comprend généralement des instructions à pied vers, depuis et entre les stations de transports en commun. Étant donné qu'un itinéraire en transports en commun implique généralement de voyager avec 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 itinéraires en transports en commun et les autres itinéraires
Les itinéraires de transports en commun, que vous demandez en définissant le paramètre "travelMode" sur "TRANSIT", diffèrent des itinéraires utilisant différentes options "travelMode". Vous ne pouvez pas demander les mêmes objets et options, et la réponse renvoie des champs différents par rapport à d'autres routes.
Dans l'API Routes, les étapes constituent systématiquement une instruction de navigation pour tous les types de trajets. Ainsi, chaque instruction de navigation est une étape. La réponse d'un itinéraire en transports en commun est très semblable aux itinéraires associés à d'autres modes de transport, à quelques différences près:
Différences entre les requêtes | Différences de réponses |
---|---|
Vous ne pouvez pas spécifier de points de cheminement intermédiaires. | Inclut des informations sur les transports en commun. |
Impossible d'obtenir des itinéraires économes en carburant | Inclut des métadonnées pour chaque mode de transport, avec un résumé des étapes correspondantes, dans "stepsOverview" (pour demander ces métadonnées, utilisez le masque de champ "routes.legs.stepsOverview"). |
Impossible de préciser si les données de trafic doivent être incluses et comment | |
Impossible de spécifier des éléments de routage à éviter | |
Vous ne pouvez spécifier que transitPreferences pour routingPreference . Pour en savoir plus, consultez [TransitPreferences](reference/rest/v2/TransitPreferences). |
Pour plus d'informations sur la réponse renvoyée par l'API Routes, consultez Examiner les réponses des itinéraires 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 Transports en commun:
travelMode: "TRANSIT"
Ajoutez un masque de champ pour obtenir les champs de réponse souhaités. Consultez Demander les champs d'itinéraire de transports en commun dont vous avez besoin.
Si nécessaire, définissez des paramètres facultatifs. Consultez la section Définir les paramètres d'un itinéraire en transports en commun.
Demandez les champs d'itinéraire en transports en commun dont vous avez besoin
Demandez les champs d'itinéraire en transports 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 de 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.* |
Toutes les informations sur les transports en commun | routes.legs.steps.transitDetails |
Lieu de départ pour chaque étape | routes.legs.steps.startLocation |
Lieu d’arrivée pour chaque tronçon | routes.legs.steps.endLocation |
Polygone d'itinéraire pour chaque étape | routes.legs.steps.polyline |
Type de transport en commun utilisé pour chaque étape | routes.legs.steps.travelMode |
Tarif estimé pour chaque étape et pour l'itinéraire, et estimation du tarif localisée | 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 la section 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, avec l'heure d'exécution actuelle (now ) comme référence :
|
Inclure les itinéraires bis | "computeAlternativeRoutes": true |
Facultatif. Définissez la valeur sur "true" pour que l'API Routes calcule jusqu'à trois routes supplémentaires, le cas échéant. En savoir plus |
Indiquer vos 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 utiliser d'autres modes de transport, voire d'autres modes de transport, en fonction de l'efficacité de l'itinéraire et de sa disponibilité. |
Facultatif. spécifier vos modes de transport préférés ; En savoir plus |
Indiquer vos préférences pour l'itinéraire en transports en commun | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
Facultatif. Spécifiez vos préférences pour le calcul d'itinéraire en transports en commun. En savoir plus |
Exemple: Obtenir un itinéraire dans les transports en commun
L'exemple suivant obtient un itinéraire dans les transports en commun avec les paramètres suivants:
Spécifie les préférences pour les trajets en train et le moins de marche.
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 routes:
{ "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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }