Optimiza el orden de las paradas en tu ruta

De forma predeterminada, la API de Routes Compute Routes calcula una ruta a través de múltiples paradas, denominadas puntos de referencia de parada, en el orden en que las proporciones.

Puedes hacer que la API de Routes optimice la ruta proporcionada reorganizando se detiene de forma más eficiente. La optimización de puntos de referencia se optimiza para los viajes tiempo, pero también considera otros factores, como la distancia y el número de giros cuando decidir qué ruta es la más eficiente.

Para optimizar puntos de referencia

  1. Asegúrate de que ninguno de los puntos de referencia de la ruta tenga el valor via establecido en true, por ejemplo: {"address": "Clare,SA", "via": true}. Para obtener más información puntos de referencia intermedios, consulta Especifica puntos de referencia intermedios.

  2. Asegúrate de que routing_preference no esté configurado como TRAFFIC_AWARE_OPTIMAL.

  3. Establece optimize_waypoint_order en true. Por ejemplo:

    "optimizeWaypointOrder": "true",
    
  4. Especifica el campo routes.optimizedIntermediateWaypointIndex en el campo. enmascaramiento:

    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:

  1. Indexa automáticamente los puntos de referencia según el orden que proporcionas en la solicitud, empezando por 0.

  2. Optimiza el orden de los puntos de referencia usando los números de índice que asignados a los puntos de referencia en la solicitud.

  3. Devuelve el orden de puntos de referencia optimizados en el objeto routes, en waypoint_order, en routes.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 del sur de Australia y, luego, regresan 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 el a partir de 0. Por ejemplo:

0    {"address": "Barossa+Valley,SA"},
1    {"address": "Clare,SA"},
2    {"address": "Connawarra,SA"},
3    {"address": "McLaren+Vale,SA"}

Usando los números de índice para los cuatro puntos de referencia proporcionados en la solicitud, la servicio mostrará el orden optimizado:

"optimizedIntermediateWaypointIndex": [
                3,
                2,
                0,
                1
            ]