Ottimizzare l'ordine delle fermate sul percorso

Per impostazione predefinita, il metodo Compute Routes dell'API Routes calcola un percorso attraverso più fermate, chiamate waypoint di sosta, nell'ordine in cui li fornisci.

Puoi chiedere all'API Routes di ottimizzare il percorso fornito riordinando le fermate in un ordine più efficiente. L'ottimizzazione dei waypoint ottimizza il tempo di percorrenza, ma prende in considerazione anche altri fattori come la distanza e il numero di svolte quando si decide quale percorso è il più efficiente.

Per ottimizzare le tappe

  1. Assicurati che per nessuno dei waypoint della route sia impostato via su true, ad esempio {"address": "Clare,SA", "via": true}. Per ulteriori informazioni sui waypoint intermedi, consulta Specificare waypoint intermedi.

  2. Assicurati che routing_preference non sia impostato su TRAFFIC_AWARE_OPTIMAL.

  3. Imposta optimize_waypoint_order su true. Ad esempio:

    "optimizeWaypointOrder": "true",
  4. Specifica il campo routes.optimizedIntermediateWaypointIndex nella maschera del campo:

    REST

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

Informazioni su come viene ottimizzato l'ordine dei waypoint

Ecco come l'API Routes ottimizza l'ordine dei waypoint in un percorso:

  1. Indicizza automaticamente i waypoint in base all'ordine in cui li fornisci nella richiesta, a partire da 0.

  2. Ottimizza l'ordine delle tappe utilizzando i numeri di indice assegnati alle tappe nella richiesta.

  3. Restituisce l'ordine dei waypoint ottimizzato nell'oggetto routes, nel campo waypoint_order, in routes.optimizedIntermediateWaypointIndex.

Esempio

Questa richiesta richiede l'ottimizzazione di un percorso da Adelaide, Australia Meridionale, a ciascuna delle principali regioni vinicole dell'Australia Meridionale e poi di ritorno ad 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'

L'API Routes indicizza le tappe intermedie fornite nella richiesta, a partire da 0. Ad esempio:

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

Utilizzando i numeri di indice per i quattro waypoint forniti nella richiesta, il servizio restituisce l'ordine ottimizzato:

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