Actualmente, Google Maps Platform admite la API de Directions y la API de Distance Matrix. Esta versión de la API de Routes contiene la versión optimizada para el rendimiento de la siguiente API de Directions y la API de Distance Matrix existentes:
- Rutas de procesamiento: calcula las instrucciones sobre cómo llegar entre ubicaciones con datos de enrutamiento globales completos y tráfico en tiempo real.
- Matriz de ruta de procesamiento: calcula la distancia y el tiempo de viaje para una lista de pares de origen y destino.
La API de Routes incluye muchas funciones nuevas, incluidas las siguientes:
- Recorrido vehicular de dos ruedas
- Cálculo de los peajes
- Polilínea basada en el tráfico
- Controles de calidad de polilínea
- Controles de latencia de calidad
- Rutas ecológicas
- Transmisión de resultados (solo procesamiento de Matriz de ruta de Compute con gRPC)
- Compatibilidad con gRPC
Para obtener más información sobre la API de Routes, consulta la descripción general del producto.
En esta guía, se describe cómo migrar tus apps existentes que usan la API de Directions y la API de Distance Matrix para usar la API de Routes.
Cambios de funcionalidad en la API de Routes
En un nivel alto, la API de Routes realiza los siguientes cambios en las API de Directions y de Distance Matrix:
Consolida las rutas de Compute y la Matriz de ruta de Compute en un solo servicio llamado API de Routes.
Debes habilitar la API de Routes en la Consola de API para poder usar las rutas de Compute y Matrix Route de Compute. Actualmente, debes habilitar la API de Directions y la API de Distance Matrix como servicios independientes en la Consola de API.
Para obtener más información, consulta Configuración en la Consola de API de Google.
La nueva API de Routes usa solicitudes HTTP POST
En la API de Routes, pasas parámetros en el cuerpo de la solicitud o en los encabezados como parte de una solicitud HTTP POST. En cambio, con la API de Directions y de Distance Matrix, debes pasar los parámetros de URL mediante una solicitud HTTP GET.
Para ver ejemplos, consulta:
La configuración de campo es obligatoria
Cuando llamas a la API de Routes para calcular una ruta o una matriz de ruta, debes especificar qué campos quieres que se muestren en la respuesta. No hay una lista predeterminada de campos mostrados. Si omites esta lista, los métodos muestran un error.
Especifica la lista de campos mediante la creación de una máscara de campo de respuesta. Luego, debes pasar la máscara del campo de respuesta a cada método mediante el parámetro de URL
$fields
ofields
, o mediante el encabezado HTTP/gRPCX-Goog-FieldMask
.El enmascaramiento de campos es una buena práctica de diseño para garantizar que no solicites datos innecesarios, ya que ayuda a evitar tiempos de procesamiento y cargos de facturación innecesarios.
Para obtener más información, consulta Elige los campos que se mostrarán.
Nuevos límites de solicitud para la matriz de rutas de Compute
La API de Distance Matrix aplicó los siguientes límites de solicitudes:
- Un máximo de 25 orígenes o 25 destinos por solicitud.
- 100 elementos como máximo (cantidad de orígenes × cantidad de destinos) por solicitud del servidor
La Matriz de ruta de Compute aplica los siguientes límites de solicitud:
La cantidad de elementos no puede ser superior a 625.
Si especificas
TRAFFIC_AWARE_OPTIMAL
, la cantidad de elementos no puede superar los 100. Para obtener más información sobreTRAFFIC_AWARE_OPTIMAL
, consulta Cómo configurar la calidad frente a la latencia.La cantidad máxima de waypoints (orígenes + destinos) que puedes especificar mediante un ID de lugar es 50.
Nuevas opciones para configurar la calidad frente a la latencia
La API de Routes admite tres preferencias de enrutamiento que puedes usar para configurar de forma explícita la calidad de la ruta en comparación con la latencia de respuesta:
TRAFFIC_UNAWARE
(predeterminado): usa los datos de tráfico promedio independiente del tiempo, no los datos de tráfico en vivo, para calcular la ruta, lo que da como resultado la menor latencia de respuesta. Esta configuración equivale a cuando el tráfico no se usa en las API de Directions y de Distance Matrix.TRAFFIC_AWARE
: Calidad del tráfico en vivo optimizada para el rendimiento con latencia reducida. Esta configuración es nueva para la API de Routes y no tiene un equivalente en la API de Directions y de Distance Matrix.A diferencia de
TRAFFIC_AWARE_OPTIMAL
, se aplican algunas optimizaciones para reducir la latencia de manera significativa.TRAFFIC_AWARE_OPTIMAL
: datos de tráfico integrales y de alta calidad sin aplicar la mayoría de las optimizaciones de rendimiento. Esta configuración produce la latencia más alta y es equivalente a la configuración dedeparture_time
en la API de Directions y de Distance Matrix.La preferencia de enrutamiento
TRAFFIC_AWARE_OPTIMAL
es equivalente al modo que usan maps.google.com y la app para dispositivos móviles de Google Maps.
En la API de Directions y de Distance Matrix, solo proporcionamos el equivalente a las opciones
TRAFFIC_AWARE_OPTIMAL
yTRAFFIC_UNAWARE
. Estas opciones se configuraron de forma implícita en función de si configurastedeparture_time
.En la siguiente tabla, se comparan las opciones de la API de Directions API actual y de la API de Distance Matrix con las opciones de la API de rutas:
Mode Actual API de Routes Notas Sin tráfico en tiempo real No se configuró la propiedad departure_time
TRAFFIC_UNAWARE
La latencia más rápida de los tres modos. Se aplicaron las condiciones de tráfico en vivo Sin equivalente TRAFFIC_AWARE
Se agregó un modo nuevo mediante la API de Routes. Proporciona una latencia un poco mayor que
TRAFFIC_UNAWARE
, con un pequeño costo de calidad de ETA.Tiene una latencia mucho menor que
TRAFFIC_AWARE_OPTIMAL
.Se aplicaron datos de tráfico en vivo integrales y de alta calidad Se estableció la propiedad departure_time
TRAFFIC_AWARE_OPTIMAL
Equivalente al modo que usan maps.google.com y la app para dispositivos móviles de Google Maps.
En el caso de la matriz de rutas de Compute, la cantidad de elementos en una solicitud (cantidad de orígenes × destinos) no puede ser superior a 100.
La API de Routes también modifica la forma en que se configura la propiedad de respuesta
duration
, y modifica las propiedades que se muestran en la respuesta actual de la API de Directions y de la API de Distance Matrix, como se muestra en la siguiente tabla:Tipo de hora de llegada estimada Actual API de Routes El tráfico no reconoce el ETA independiente del tiempo. Corresponde a que
departure_time
no se haya establecido en la solicitud.- ETA incluido en la propiedad de respuesta
duration
. - No se muestra la propiedad de respuesta
duration_in_traffic
.
Corresponde a
TRAFFIC_UNAWARE
.- ETA incluido en la propiedad de respuesta
duration
. - Las propiedades de respuesta
duration
ystaticDuration
contienen el mismo valor.
ETA que tiene en cuenta el tráfico en tiempo real. Corresponde a la configuración de
departure_time
en la solicitud.- La hora de llegada estimada, que tiene en cuenta el tráfico en tiempo real, se encuentra en la propiedad de respuesta
duration_in_traffic
.
Corresponde a
TRAFFIC_AWARE
oTRAFFIC_AWARE_OPTIMAL
.- La hora de llegada estimada, que tiene en cuenta el tráfico en tiempo real, se encuentra en la propiedad de respuesta
duration
. - La propiedad de respuesta
staticDuration
incluye la duración de viajar por la ruta sin tener en cuenta las condiciones de tráfico. - La propiedad
duration_in_traffic
ya no se muestra.
Para obtener más información, consulta Cómo configurar la calidad frente a la latencia.
Funciones existentes no compatibles con la API de Routes
Las siguientes funciones no serán compatibles con la API de Routes:
XML como formato de respuesta. Solo se admiten JSON y gRPC.
Geocodificación inversa
Ahora usas la API de geocodificación inversa para esta función, que se creó para este caso práctico y proporciona resultados de mayor calidad.
Migra a la API de Routes
Realizamos varios cambios en la API de Routes. La mayoría de los cambios son retrocompatibles con las API actuales, pero a continuación se enumeran algunos cambios rotundos que requieren tu atención cuando se migran apps a la API de Routes.
Actualiza los extremos de la API de REST
Si usas la API de Directions, actualiza tu código para que use el extremo nuevo de la API de Routes:
API de Directions | https://maps.googleapis.com/maps/api/directions/outputFormat?parameters |
API de Routes | https://routes.googleapis.com/directions/v2:computeRoutes |
Si usas la API de Distance Matrix, actualiza tu código para usar el extremo nuevo de la API de Routes:
API de Distance Matrix | https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters |
API de Routes | https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix |
Convertir los parámetros de la URL para usar un cuerpo de solicitud HTTP
Con la API de Directions y la API de Distance Matrix, pasas las propiedades de configuración como parámetros de URL a una solicitud HTTP GET. Por ejemplo, para la API de Directions, haz lo siguiente:
https://maps.googleapis.com/maps/api/directions/outputFormat?parameters
Con la API de Routes, pasas parámetros en el cuerpo de una solicitud o en los encabezados como parte de una solicitud HTTP POST. Para ver ejemplos, consulta:
Convertir los parámetros actuales en parámetros de la API de Routes
En la siguiente tabla, se enumeran los parámetros de la API de Directions Directions actual y la matriz de distancia que se modificaron o cambiaron de nombre, o bien los parámetros que no se admiten en la versión de Google Analytics. Actualiza tu código si usas alguno de estos parámetros.
Parámetro actual | Parámetro de la API de Routes | Notas |
---|---|---|
alternatives |
computeAlternativeRoutes |
|
arrival_time |
No está disponible porque el modo TRANSIT no está disponible. |
|
avoid |
routeModifiers |
|
copyrights |
No se incluye en la respuesta. Cuando muestres los resultados a tus usuarios, debes incluir la siguiente declaración:
Por ejemplo:
|
|
departure_time |
departureTime |
|
distance |
distanceMeters |
La distancia solo está disponible en metros. |
duration_in_traffic |
|
Se quitó de la API de Routes y usa duration . Si deseas obtener más información, consulta Cambios de funcionalidad para la nueva API de Routes más arriba. |
language |
languageCode |
Solo es compatible con las rutas de Compute. |
mode |
travelMode |
Se agregó compatibilidad para El modo |
region |
regionCode |
|
status |
No disponible. Usa los códigos de respuesta HTTP para los errores informados por la API. Consulta Soluciona errores de solicitud para obtener más información. | |
traffic_model |
No disponible. | |
transit_mode |
No está disponible porque el modo TRANSIT no está disponible. |
|
transit_routing_preference |
No está disponible porque el modo TRANSIT no está disponible. |
|
units |
No está disponible para la matriz de ruta. | |
waypoints |
intermediates |
|
optimize=true para puntos de referencia |
No disponible. |
Migra desde la versión preliminar
La API de Routes se lanzó en vista previa pública (anterior a la disponibilidad general) en septiembre de 2022. Las ofertas de fase previa a la DG están cubiertas por las Condiciones específicas del servicio de Google Maps Platform. Para obtener más información, consulta las descripciones de la etapa de lanzamiento.
En esta sección, se describe cómo migrar una app de la versión preliminar para la versión de disponibilidad general.
Nuevas funciones agregadas a la versión de disponibilidad general
En la versión de Google Analytics, se agregan las siguientes funciones nuevas que no se incluyeron en la vista previa:
Además de los IDs de lugar y las coordenadas de latitud y longitud, ahora puedes especificar una ubicación en la versión de Google Analytics mediante lo siguiente:
Strings de dirección ("Chicago, IL" o "Darwin, NT, Australia")
Las strings de dirección suelen ser la forma en que un usuario ingresa una dirección. Sin embargo, primero, {product_name} debe geocodificar la string de dirección de manera interna para convertirla en coordenadas de latitud y longitud antes de calcular una ruta.
Además, se agregó compatibilidad con el parámetro de solicitud
regionCode
, lo que te permite especificar que se muestren resultados geocodificados para una región geográfica específica.-
Los Plus Codes son como direcciones para las personas o lugares que no tienen una dirección real. En lugar de direcciones con nombres de calles y números, los Plus Codes se basan en la latitud y longitud, y se muestran como números y letras.
La respuesta de rutas de procesamiento ahora contiene el arreglo
geocodingResults
. Para cada ubicación en la solicitud (origen, destino o punto de referencia intermedio) que se especificó como una string de dirección o un código plus, la API realiza una búsqueda de ID de lugar. Cada elemento de este arreglo contiene el ID de lugar correspondiente a una ubicación junto con metadatos adicionales sobre la ubicación. Las ubicaciones en la solicitud especificadas como ID de lugar o como coordenadas de latitud y longitud se ignoran.
Cambios en las funciones de Preview existentes
Ahora debes habilitar de forma explícita las siguientes funciones en la disponibilidad general mediante el campo extraComputations
del arreglo nuevo a la solicitud:
En la versión preliminar, usaste una máscara de campo a fin de especificar la información para estas funciones en la respuesta. Ahora, debe hacer lo siguiente:
- Configura el nuevo parámetro de solicitud de arreglo
extraComputations
para habilitar estas funciones. - Establece una máscara de campo para especificar que se mostrará la información en la respuesta.
¿Qué debo saber?
Los siguientes campos ya no se incluirán en las respuestas de computeRouteMatrix, a menos que se habiliten explícitamente las opciones extraComputations
:
travelAdvisory.tollInfo
(información de peaje)
Los siguientes campos ya no se incluirán en las respuestas de computeRoutes, a menos que se habiliten de forma explícita con la configuración extraComputations
:
routes.legs.travelAdvisory.tollInfo
(Información de peaje)routes.travelAdvisory.tollInfo
(Información de peaje)routes.travelAdvisory.fuelConsumptionMicroliters
(Consumo de combustible)routes.travelAdvisory.speedReadingIntervals
(Tráfico en una polilínea)routes.legs.travelAdvisory.speedReadingIntervals
(Tráfico en una polilínea)
¿Qué debo hacer?
A fin de recibir los campos de respuesta para la información de los peajes, el consumo de combustible o el tráfico en una polilínea, debes configurar el nuevo campo de arreglo de solicitud, extraComputations
, a fin de incluir uno o más de los siguientes valores:
Para recibir la información de peaje, establece el nuevo campo de arreglo
extraComputations
en"TOLLS"
.Para recibir el consumo de combustible, establece el nuevo campo de array
extraComputations
en"FUEL_CONSUMPTION"
.Para recibir información del tráfico en polilíneas, establece el nuevo campo de arreglo
extraComputations
en"TRAFFIC_ON_POLYLINE"
.