Cuando la API de Routes calcula una ruta, toma los puntos de referencia y los parámetros de configuración que proporcionas como entrada. Luego, la API muestra una respuesta que contiene la ruta predeterminada y una o más rutas alternativas.
Tu respuesta puede incluir diferentes tipos de rutas y otros datos, según los campos que solicites:
Para incluir esto en la respuesta | Consulta esta documentación |
---|---|
La ruta con mayor ahorro de combustible o eficiencia energética según el tipo de motor del vehículo | Configura rutas ecológicas |
Hasta tres rutas alternativas | Cómo solicitar rutas alternativas |
La polilínea de una ruta completa, de cada tramo de una ruta y de cada paso de un tramo. | Solicita polilíneas de ruta |
Los peajes estimados, teniendo en cuenta los descuentos o pases de peaje disponibles para el conductor o el vehículo | Cómo calcular los peajes |
Respuestas localizadas por códigos de idioma y unidad de medida (imperial o métrica) | Cómo solicitar valores localizados |
Para dar formato a las instrucciones de navegación como una cadena de texto HTML, agrega HTML_FORMATTED_NAVIGATION_INSTRUCTIONS a extraComputations . |
Cálculos adicionales |
Para obtener la lista completa de las opciones de entrada, consulta Opciones de ruta disponibles y el cuerpo de la solicitud.
Con la respuesta, puedes proporcionar a tus clientes la información necesaria para seleccionar la ruta adecuada para sus requisitos.
Acerca de las máscaras de campo
Cuando llames a un método para calcular una ruta, debes especificar una máscara de campo que defina qué campos deseas que se muestren en la respuesta. No hay una lista predeterminada de campos que se muestran. Si omites esta lista, los métodos mostrarán un error.
En los ejemplos de este documento, se muestra todo el objeto de respuesta sin tener en cuenta las máscaras de campo. En un entorno de producción, tu respuesta solo incluiría los campos que especifiques de forma explícita en la máscara de campo.
Para obtener más información, consulta Elige qué información mostrar.
Acerca de la visualización de los derechos de autor
Cuando muestres los resultados a los usuarios, debes incluir la siguiente declaración de derechos de autor:
Powered by Google, ©YEAR Google
Por ejemplo:
Powered by Google, ©2023 Google
Información acerca de las rutas, los tramos y los pasos
Antes de ver la respuesta que muestra la API de Routes, debes comprender los componentes que conforman una ruta:
Tu respuesta puede contener información sobre cada uno de estos componentes de la ruta:
Ruta: Es todo el viaje desde el punto de referencia de origen, pasando por cualquier punto de referencia intermedio, hasta el punto de referencia de destino. Una ruta consta de uno o más segmentos.
Trecho: Es la ruta de un punto de referencia en una ruta al siguiente punto de referencia en la ruta. Cada tramo consta de uno o más pasos discretos.
Una ruta contiene un tramo independiente para la ruta de cada punto de referencia al siguiente. Por ejemplo, si la ruta contiene un solo punto de referencia de origen y un solo punto de referencia de destino, la ruta contiene un solo tramo. Para cada punto de referencia adicional que agregues a la ruta después del origen y el destino, llamado punto de referencia intermedio, la API agrega un tramo independiente.
La API no agrega un tramo para un punto de referencia intermedio de paso. Por ejemplo, una ruta que contiene un punto de referencia de origen, un punto de referencia intermedio de paso y un punto de referencia de destino contiene solo un tramo desde el origen hasta el destino, mientras pasa por el punto de referencia. Para obtener más información sobre los puntos de referencia de paso, consulta Cómo definir un punto de referencia de paso.
Paso: Es una sola instrucción a lo largo de un tramo de una ruta. Un paso es la unidad más pequeña de una ruta. Por ejemplo, un paso puede indicar "Gira a la izquierda en la Calle Principal".
Contenido de la respuesta
El objeto JSON que representa la respuesta de la API contiene las siguientes propiedades de nivel superior:
routes
, un array de elementos de tipo Ruta. El arrayroutes
contiene un elemento para cada ruta que muestra la API. El array puede contener un máximo de cinco elementos: la ruta predeterminada, la ruta ecológica y hasta tres rutas alternativas.geocodingResults
, un array de elementos de tipo GeocodingResults Para cada ubicación de la solicitud (origen, destino o punto de referencia intermedio) que especifiques como una cadena de dirección o como un código plus, la API realiza una búsqueda de ID de lugar. Cada elemento de este array contiene el ID de lugar correspondiente a una ubicación. No se incluyen las ubicaciones de la solicitud especificadas como ID de lugar o como coordenadas de latitud y longitud. Si especificaste todas las ubicaciones con IDs de lugares o coordenadas de latitud y longitud, no se proporciona este array.fallbackInfo
, de tipo FallbackInfo. Si la API no puede calcular una ruta a partir de todas las propiedades de entrada, es posible que recurra a una forma diferente de cálculo. Cuando se usa el modo de resguardo, este campo contiene información detallada sobre la respuesta de resguardo. De lo contrario, este campo no se establece.
La respuesta tiene el siguiente formato:
{ // The routes array. "routes": [ { object (Route) } ], // The place ID lookup results. "geocodingResults": [ { object (GeocodedWaypoint) } ], // The fallback property. "fallbackInfo": { object (FallbackInfo) } }
Cómo descifrar el array de rutas
La respuesta contiene el array routes
, en el que cada elemento del array es del tipo Route.
Cada elemento del array representa una ruta completa desde el origen hasta el destino. La API siempre muestra al menos una ruta, llamada ruta predeterminada.
Puedes solicitar rutas adicionales. Si solicitas una ruta ecológica, el array puede contener dos elementos: la ruta predeterminada y la ruta ecológica. También puedes establecer computeAlternativeRoutes
en true
en la solicitud para agregar hasta tres rutas alternativas a la respuesta.
Cada ruta del array se identifica con la propiedad del array routeLabels
:
Valor | Descripción |
---|---|
DEFAULT_ROUTE |
Identifica la ruta predeterminada. |
FUEL_EFFICIENT |
Identifica la ruta ecológica. |
DEFAULT_ROUTE_ALTERNATE |
Indica una ruta alternativa. |
El array legs
contiene la definición de cada tramo de la ruta. Las propiedades restantes, como distanceMeters
, duration
y polyline,
, contienen información sobre la ruta en su totalidad:
{ "routeLabels": [ enum (RouteLabel) ], "legs": [ { object (RouteLeg) } ], "distanceMeters": integer, "duration": string, "routeLabels": [string], "staticDuration": string, "polyline": { object (Polyline) }, "description": string, "warnings": [ string ], "viewport": { object (Viewport) }, "travelAdvisory": { object (RouteTravelAdvisory) } "routeToken": string }
Debido a las condiciones de conducción actuales y a otros factores, la ruta predeterminada y la ruta ecológica pueden ser las mismas. En este caso, el array routeLabels
contiene ambas etiquetas: DEFAULT_ROUTE
y FUEL_EFFICIENT
.
{ "routes": [ { "routeLabels": [ "DEFAULT_ROUTE", "FUEL_EFFICIENT" ], … } ] }
Comprende el array de tramos
Cada route
en la respuesta contiene un array legs
, en el que cada elemento del array legs
es del tipo RouteLeg.
Cada tramo de la matriz define la ruta de un punto de referencia al siguiente a lo largo de la ruta. Una ruta siempre contiene al menos un tramo.
La propiedad legs
contiene la definición de cada paso a lo largo de la etapa en el array steps
. Las propiedades restantes, como distanceMeters
, duration
y polyline
, contienen información sobre el tramo.
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "steps": [ { object (RouteLegStep) } ], "travelAdvisory": { object (RouteLegTravelAdvisory) } }
Comprende el array de pasos
Cada tramo de la respuesta contiene un array steps
, en el que cada elemento del array steps
es del tipo RouteLegStep.
Un paso corresponde a una sola instrucción a lo largo de la etapa. Una etapa siempre contiene al menos un paso.
Cada elemento del array steps
incluye la propiedad navigationInstruction
, de tipo NavigationInstruction, que contiene la instrucción de paso. Por ejemplo:
"navigationInstruction": { "maneuver": "TURN_LEFT", "instructions": "Turn left toward Frontage Rd" }
El instructions
puede contener información adicional sobre el paso. Por ejemplo:
"navigationInstruction": { "maneuver": "TURN_SLIGHT_LEFT", "instructions": "Slight left (signs for I-90 W/Worcester)nParts of this road may be closed at certain times or days" }
Las propiedades restantes del paso describen información sobre el paso, como distanceMeters
, duration
y polyline
:
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "navigationInstruction": { object (NavigationInstruction) } }
Especifica el idioma de las instrucciones de los pasos
La API muestra la información de la ruta en el idioma local, transliterada a una secuencia de comandos legible para el usuario, si es necesario, que respeta el idioma preferido. Los componentes de la dirección se muestran en el mismo idioma.
Usa el parámetro
languageCode
de una solicitud para establecer de forma explícita el idioma de la ruta de la lista de idiomas compatibles. Google actualiza con frecuencia los idiomas admitidos, por lo que es posible que esta lista no sea completa.Si un nombre no está disponible en el idioma especificado, la API usa la coincidencia más cercana.
El idioma especificado puede influir en el conjunto de resultados que la API elige mostrar y el orden en el que se muestran. El geocodificador interpreta las abreviaturas de forma diferente según el idioma, como las abreviaturas para tipos de calle o sinónimos que pueden ser válidos en un idioma pero no en otro. Por ejemplo, utca y tér son sinónimos de “calle” en húngaro.
Comprende el array geocodingResults
Para cada ubicación de la solicitud (origen, destino o punto de referencia intermedio) que se especifique como una cadena de dirección o como un código plus, la API intenta encontrar la ubicación más relevante que tenga un ID de lugar correspondiente. Cada elemento del array geocodingResults
contiene el campo placeID
que contiene la ubicación como un ID de lugar y un campo type
que especifica el tipo de ubicación, como street_address
, premise
o airport
.
El array geocodingResults
contiene tres campos:
origin
: Si se especificó como una cadena de dirección o como un código Plus, el ID de lugar de origen. De lo contrario, este campo se omite de la respuesta.destination
: Si se especificó como una cadena de dirección o como un Plus Code, el ID del lugar de destino. De lo contrario, este campo se omite de la respuesta.intermediates
: Es un array que contiene el ID de lugar de cualquier punto intermedio especificado como una cadena de dirección o como un código Plus. Si especificas un punto de referencia intermedio con un ID de lugar o coordenadas de latitud y longitud, se omite de la respuesta. Usa la propiedadintermediateWaypointRequestIndex
en la respuesta para determinar qué punto de referencia intermedio de la solicitud corresponde al ID de lugar de la respuesta.
"geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "destination": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string } ] }
Comprende los valores de respuesta localizados
Los valores de respuesta localizados son un campo de respuesta adicional que proporciona texto localizado para los valores de parámetros que se muestran. Se proporciona texto localizado para la duración del viaje, la distancia y el sistema de unidades (métrico o anglosajón). Solicitas valores localizados con una máscara de campo y puedes especificar el idioma y el sistema de unidades, o bien usar los valores inferidos por la API. Para obtener más información, consulta LocalizedValues.
Por ejemplo, si especificas un código de idioma para alemán (de) y unidades imperiales, obtienes un valor de distanceMeters
de 49889.7, pero también un texto localizado que proporciona esa medición de distancia en alemán y unidades imperiales, es decir, "31 Meile".
Este es un ejemplo de lo que verías para los valores localizados:
{ "localized_values": { "distance": { "text": "31,0 Meile/n" }, "duration": { "text": 38 Minuten}. "static_duration": { "text": 36 Minuten}. } }
Si no especificas el idioma o el sistema de unidades, la API infiere el idioma y las unidades de la siguiente manera:
- El método
ComputeRoutes
infiere la ubicación y las unidades de distancia del punto de referencia de origen. Por lo tanto, para una solicitud de enrutamiento en EE.UU., la API infiere el idiomaen-US
y las unidadesIMPERIAL
. - El método
ComputeRouteMatrix
usa de forma predeterminada el idioma "en-US" y las unidades métricas.