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 parada, en el orden en que las proporciones.
Puedes hacer que la API de Routes optimice la ruta proporcionada reorganizando las paradas en un orden más eficiente. La optimización de puntos de referencia se optimiza en función del tiempo de viaje, pero también considera otros factores, como la distancia y la cantidad de giros, para decidir qué ruta es la más eficiente.
Para optimizar puntos de referencia
Asegúrate de que ninguno de los puntos de referencia de la ruta tenga el valor
via
configurado comotrue
, por ejemplo:{"address": "Clare,SA", "via": true}
. Para obtener más información sobre los puntos de referencia intermedios, consulta Cómo especificar puntos de referencia intermedios.Asegúrate de que
routing_preference
no esté configurado comoTRAFFIC_AWARE_OPTIMAL
.Establece
optimize_waypoint_order
entrue
. Por ejemplo:"optimizeWaypointOrder": "true",
Especifica el campo
routes.optimizedIntermediateWaypointIndex
en la máscara de campo:REST
-H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex
RPC
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
Comprender cómo se optimiza el orden de los puntos de referencia
A continuación, te mostramos 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 por 0.
Optimiza el orden de los puntos de referencia mediante los números de índice que asignó a los puntos de referencia en la solicitud.
Muestra el orden de puntos de referencia optimizado en el objeto
routes
, en el campowaypoint_order
, debajo deroutes.optimizedIntermediateWaypointIndex
.
Ejemplo
Esta solicitud solicita la optimización de una ruta desde Adelaida, Australia del Sur, a cada una de las principales regiones vinícolas de Australia del Sur y, luego, regresa a Adelaida.
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": "Connawarra,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.optimizedIntermediateWaypointIndex' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
La API de Routes indexa los puntos de referencia intermedios proporcionados en la solicitud a partir de 0. Por ejemplo:
0 {"address": "Barossa+Valley,SA"}, 1 {"address": "Clare,SA"}, 2 {"address": "Connawarra,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 ]