De forma predeterminada, la API de Routes muestra la ruta default, que suele cuál es la ruta más rápida desde el origen hasta el destino. Cuando solicites Alternativas, la API muestra hasta tres rutas junto con la ruta ruta. Así, los clientes pueden elegir la ruta que mejor se adapte a sus necesidades.
Consideraciones para solicitar rutas alternativas
Para solicitar rutas alternativas, ten en cuenta las siguientes consideraciones:
Solo puedes solicitar rutas alternativas para rutas sin intermedias y puntos de referencia. Solicitud de rutas alternativas cuando la ruta especifica los puntos de referencia intermedios no generan errores. Sin embargo, no existe una alternativa se devuelven las rutas.
La respuesta contiene un máximo de tres rutas alternativas. Sin embargo, a veces no hay rutas alternativas disponibles, por lo que la respuesta solo contiene la ruta predeterminada.
Debido al procesamiento adicional necesario para calcular rutas alternativas, la solicitud de rutas alternativas puede aumentar el tiempo de respuesta de la API.
Ejemplo de solicitud de rutas alternativas
Establece computeAlternativeRoutes
en true
para solicitar rutas alternativas. El
siguiente ejemplo muestra cómo solicitar rutas alternativas en una
computeRoutes
método REST (REST).
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
En este ejemplo, se especifica una máscara de campo para que la respuesta contenga solo el
Las propiedades duration
, distanceMeters,
y routeLabels
para cada ruta Tu
el cliente puede usar esa información para elegir qué ruta tomar. Para ver más
consulta Elige la información que deseas mostrar.
Ejemplo de respuesta de rutas alternativas
En la respuesta, usa la propiedad de array routeLabels
para identificar el alcance.
ruta:
Para la ruta predeterminada, la propiedad
routeLabels
contieneDEFAULT_ROUTE
Para las rutas alternativas, la propiedad
routeLabels
contieneDEFAULT_ROUTE_ALTERNATE
En este ejemplo, la respuesta contiene la ruta predeterminada y dos opciones
rutas. Observa que los valores de las propiedades duration
y distanceMeters
son diferentes para cada ruta:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
Cómo incluir polilíneas en la respuesta
Para facilitar al usuario seleccionar la ruta, agrega polilínea para cada ruta a la respuesta. Luego, puedes mostrar cada polilínea en un mapa.
Para agregar la polilínea, incluye routes.polyline
en la máscara de campo:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
La respuesta contendrá la polilínea para cada ruta:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }