De forma predeterminada, el método Compute Routes de la API de Routes calcula una ruta a través de varias paradas, llamadas puntos de referencia de escala, en el orden que proporcionas.
Puedes hacer que la API de Routes optimice la ruta proporcionada reordenando las paradas de una forma más eficiente. La optimización de puntos de referencia se optimiza para el tiempo de viaje, pero también considera otros factores, como la distancia y la cantidad de giros, cuando se decide qué ruta es la más eficiente.
Cómo optimizar los puntos de referencia
Asegúrate de que ninguno de los puntos de referencia de la ruta tenga
viaconfigurado comotrue, por ejemplo:{"address": "Clare,SA", "via": true}. Para obtener más información sobre los puntos de referencia intermedios, consulta Especifica puntos de referencia intermedios.Asegúrate de que
routing_preferenceno esté configurado comoTRAFFIC_AWARE_OPTIMAL.Establece
optimize_waypoint_orderentrue. Por ejemplo:"optimizeWaypointOrder": "true",
Especifica el campo
routes.optimizedIntermediateWaypointIndexen la máscara de campo:REST
-H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex
RPC
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
Comprende cómo se optimiza el orden de los puntos de referencia
A continuación, se explica cómo la API de Routes optimiza el orden de los puntos de referencia en una ruta:
Indexa automáticamente los puntos de referencia según el orden en que los proporcionas en la solicitud, comenzando con 0.
Optimiza el orden de los puntos de referencia con los números de índice que asignó a los puntos de referencia en la solicitud.
Muestra el orden optimizado de los puntos de referencia en el
routesobjeto, en elwaypoint_ordercampo, enroutes.optimizedIntermediateWaypointIndex.
Ejemplo
En esta solicitud, se solicita la optimización de una ruta desde Adelaide, Australia Meridional, a cada una de las principales regiones vinícolas de Australia Meridional y, luego, el regreso a Adelaide.
curl -X POST -H 'content-type: application/json' -d ' { "origin": { "address": "Adelaide,SA" }, "destination": { "address": "Adelaide,SA" }, "intermediates": [ {"address": "Barossa+Valley,SA"}, {"address": "Clare,SA"}, {"address": "Coonawarra,SA"}, {"address": "McLaren+Vale,SA"} ], "travelMode": "DRIVE", "optimizeWaypointOrder": "true" }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
La API de Routes indexa los puntos de referencia intermedios proporcionados en la solicitud, comenzando en 0. Por ejemplo:
0 {"address": "Barossa+Valley,SA"}, 1 {"address": "Clare,SA"}, 2 {"address": "Coonawarrav,SA"}, 3 {"address": "McLaren+Vale,SA"}
Con los números de índice de los cuatro puntos de referencia proporcionados en la solicitud, el servicio muestra el orden optimizado:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]