Un itinéraire en transports en commun fournit des instructions de navigation en transports en commun disponibles dans la région. Il peut s'agir de bus, de métros entre autres. Un itinéraire en transports en commun comprend également généralement des instructions sur marcher vers, depuis et entre les stations de transports en commun. Étant donné qu'un itinéraire en transports en commun vous oblige généralement à utiliser plusieurs modes de transport, demande la route 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 en transports en commun, que vous demandez en définissant le mode de transport de TRANSIT, diffèrent à partir d'itinéraires utilisant différentes 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 à d'autres itinéraires.
Dans l'API Routes, les étapes sont systématiquement une instruction de navigation. pour tous les types de voyages. Chaque instruction de navigation correspond donc à une étape. Un transport en commun est très semblable à celui des autres modes de transport, avec quelques différences différences:
Différences entre les requêtes | Différences entre les 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 | Comprend des métadonnées pour chaque mode de transport qui contient le résumé des étapes pour ce mode de transport, dans "stepsOverview" (pour demander ces métadonnées, utilisez les masque de champ "routes.legs.stepsOverview"). |
Impossible de spécifier si et comment inclure les données sur le trafic | |
Impossible de spécifier des éléments géographiques de route à éviter | |
Vous ne pouvez spécifier que transitPreferences pour
routingPreference Pour en savoir plus, consultez
[TransitPreferences](reference/rest/v2/TransitPreferences). |
Pour en savoir plus sur la réponse renvoyée par l'API Routes, consultez Examinez les réponses concernant les 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 de votre choix. Voir Demandez les champs d'itinéraire en transports en commun dont vous avez besoin.
Si nécessaire, définissez des paramètres facultatifs. Voir Définissez les paramètres d'un itinéraire en transports en commun.
Demander 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 titre de transport la route et 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 des transports en commun | routes.legs.steps.transitDetails |
Lieu de départ pour chaque étape | routes.legs.steps.startLocation |
Lieu d'arrivée pour chaque étape | routes.legs.steps.endLocation |
Acheminer la polyligne pour chaque étape | routes.legs.steps.polyline |
Type de transport utilisé pour chaque étape | routes.legs.steps.travelMode |
une estimation du tarif de chaque étape et de l'itinéraire ; Estimation du tarif 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 des masques de champ, consultez Sélectionnez 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, procédez comme suit : | 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
la durée d'exécution actuelle (now ). Vous pouvez définir les heures d'arrivée
les heures de départ uniquement dans la fenêtre suivante, en tenant compte
du temps d'exécution (now ) comme référence:
<ph type="x-smartling-placeholder">
|
Inclure d'autres itinéraires | "computeAlternativeRoutes": true |
Facultatif. Définissez ce paramètre sur "true" pour que l'API Routes calcule jusqu'à trois d'autres itinéraires, le cas échéant. En savoir plus |
Spécifiez 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 toujours utiliser d'autres modes de transport ou seulement d'autres modes de transport, en fonction l'efficacité de l'itinéraire et la disponibilité voyager. |
Facultatif. Spécifiez vos modes de transport préférés. En savoir plus |
Spécifiez vos 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'itinéraire en transports en commun. En savoir plus |
Exemple: Obtenir un itinéraire en transports en commun
Dans l'exemple suivant, la requête récupère 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 à pied.
Demande d'autres itinéraires.
Fournit un masque de champ qui renvoie les informations sur les transports 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 des 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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }