Ottimizzare l'ordine delle fermate sul percorso

Per impostazione predefinita, il metodo Compute Routes dell'API Routes calcola un percorso attraverso più fermate, chiamate tappe delle tappe, nell'ordine in cui le fornisci.

Puoi fare in modo che l'API Routes ottimizzi il percorso fornito riorganizzando gli fermate in un ordine più efficiente. L'ottimizzazione dei waypoint ottimizza i tempi di percorrenza, ma prende in considerazione anche altri fattori come la distanza e il numero di svolte per decidere qual è il percorso più efficiente.

Ottimizzare le tappe

  1. Assicurati che via non sia impostato su true per nessuna tappa del percorso, ad esempio: {"address": "Clare,SA", "via": true}. Per ulteriori informazioni sulle tappe intermedie, consulta Specificare le tappe intermedie.

  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 di campo:

    RESTO

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

Comprendere come viene ottimizzato l'ordine delle tappe

L'API Routes ottimizza l'ordine delle tappe di un percorso nel seguente modo:

  1. Indicizza automaticamente le tappe in base all'ordine che 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 ottimizzato dei waypoint nell'oggetto routes, nel campo waypoint_order, in routes.optimizedIntermediateWaypointIndex.

Esempio

Questa richiesta chiede l'ottimizzazione di un percorso da Adelaide, nell'Australia meridionale, a ciascuna delle principali regioni vinicole dell'Australia meridionale, per poi tornare 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": "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'

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": "Connawarra,SA"},
3    {"address": "McLaren+Vale,SA"}

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

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