Una ruta de transporte público proporciona instrucciones de navegación mediante las opciones de transporte público disponibles en la región. Las opciones de transporte público pueden incluir autobuses, metros y trenes, entre otras. Una ruta de transporte público también suele incluir instrucciones para caminar hacia, desde y entre las estaciones de transporte público. Debido a que, por lo general, una ruta de transporte público requiere que viajes con más de un medio de transporte, la forma de solicitar la ruta y algunas partes de la respuesta son diferentes.
En qué se diferencian las rutas de transporte público de otras
Las rutas de transporte público, que solicitas cuando configuras el modo de viaje de TRANSIT, son diferentes de las rutas que usan diferentes opciones de TravelMode. No puedes solicitar los mismos objetos y opciones, y la respuesta muestra campos diferentes en comparación con otras rutas.
En la API de Routes, los pasos son, de manera coherente, una instrucción de navegación para todos los tipos de viajes. Por lo tanto, cada instrucción de navegación es un paso. Una respuesta de ruta de transporte público es muy similar a las rutas para otros medios de transporte, con algunas diferencias clave:
Diferencias en las solicitudes | Diferencias de respuesta |
---|---|
No puedes especificar puntos de referencia intermedios. | Incluye detalles del transporte público. |
No se pueden obtener rutas ecológicas | Incluye metadatos para cada medio de transporte que contiene el resumen de los pasos para ese medio de transporte, en “stepsOverview” (para solicitar estos metadatos, usa la máscara de campo “routes.legs.stepsOverview”). |
No se puede especificar cómo y si incluir datos de tráfico. | |
No se pueden especificar los componentes de ruta que se deben evitar | |
Solo se puede especificar transitPreferences para routingPreference . Para obtener más información, consulta [TransitPreferences](reference/rest/v2/TransitPreferences). |
Para obtener más información sobre la respuesta que muestra la API de Routes, consulta Revisa las respuestas de las rutas de transporte público.
Cómo obtener una ruta de transporte público
Configura tu origen y destino.
Configura el medio de transporte como transporte público:
travelMode: "TRANSIT"
Agrega una máscara de campo para obtener los campos de respuesta que desees. Consulta Solicita los campos de rutas de transporte público que necesitas.
Si es necesario, configura parámetros opcionales. Consulta Cómo establecer parámetros para una ruta de transporte público.
Solicita los campos de rutas de transporte público que necesitas.
Solicita los campos de rutas de transporte público que necesitas mediante máscaras de campo. La siguiente tabla contiene algunas respuestas sugeridas para una ruta de transporte público y la máscara de campo que se debe usar para solicitarlas.
Cómo solicitar esta información | Usar esta máscara de campo |
---|---|
Todos los detalles de la ruta | routes.* |
Todos los detalles del transporte público | routes.legs.steps.transitDetails |
Ubicación de inicio para cada tramo | routes.legs.steps.startLocation |
Ubicación de finalización para cada tramo | routes.legs.steps.endLocation |
Enrutar la polilínea para cada paso | routes.legs.steps.polyline |
Tipo de transporte público utilizado en cada paso | routes.legs.steps.travelMode |
Tarifa estimada de cada paso y de la ruta; tarifa estimada localizada | routes.travel_advisory.transitFare
localized routes.localizedValues.transitFare
Nota: |
Texto localizado para la duración y la distancia | routes.localizedValues |
Para obtener más información sobre la configuración de máscaras de campo, consulta Elige los campos que se mostrarán.
Establece parámetros para una ruta de transporte público
Estos son los parámetros relevantes para las rutas de transporte público:
Para hacer lo siguiente | Usa este parámetro | Notas |
---|---|---|
Selecciona el medio de transporte público | travelMode: "TRANSIT" |
Obligatorio. Más información. |
Cómo configurar una hora de llegada o salida | "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"
O "departureTime": "yyyy-mm-ddThh:mm:ssZ" |
Opcional. Puedes especificarar_time_time o departure_time. Si no especificas ninguno, el departure_time se establece de forma predeterminada en la hora de ejecución actual (now ). Puedes configurar las horas de llegada y de salida solo dentro del siguiente período, con el tiempo de ejecución actual (now ) como referencia:
|
Incluir rutas alternativas | "computeAlternativeRoutes": true |
Opcional. Configúralo como verdadero para que la API de Routes calcule hasta 3 rutas adicionales, cuando estén disponibles. Más información |
Especifica las preferencias para el tipo de transporte público | "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}
Nota: Si especificas un medio de transporte preferido, las rutas que se muestran pueden usar otros medios de transporte, incluso solo otros medios de transporte, según la eficiencia de la ruta y la disponibilidad del viaje preferido. |
Opcional. Especifica los medios de transporte preferidos. Más información |
Especifica las preferencias para la ruta de transporte público. | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
Opcional. Especifica las preferencias de rutas en transporte público. Más información |
Ejemplo: Obtén una ruta en el transporte público
En el siguiente ejemplo, se obtiene una ruta de transporte público con los siguientes parámetros:
Especifica las preferencias para viajar en un tren y menos caminata.
Solicita rutas alternativas.
Proporciona una máscara de campo que muestra los detalles del transporte público:
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'
En la respuesta, se muestran los campos route.legs.steps.transitDetails
para las dos rutas:
{ "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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }