Ottimizzare l'ordine delle fermate sul percorso

Sviluppatori dello Spazio economico europeo (SEE)

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

Puoi chiedere all'API Routes di ottimizzare l'itinerario fornito riorganizzando le soste in un ordine più efficiente. L'ottimizzazione delle tappe non solo ottimizza il tempo di percorrenza, ma prende in considerazione anche altri fattori, come la distanza e il numero di svolte, per decidere quale percorso è il più efficiente.

Per ottimizzare i waypoint

  1. Assicurati che nessuno dei waypoint della route abbia via impostato su true, ad esempio: {"address": "Clare,SA", "via": true}. Per saperne di più sui waypoint intermedi, consulta Specificare i 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")

Comprendere 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 ottimizzato dei waypoint nell'oggetto routes, nel campo waypoint_order, in routes.optimizedIntermediateWaypointIndex.

Esempio

Questa richiesta chiede l'ottimizzazione di un itinerario da Adelaide, Australia del Sud, a ciascuna delle principali regioni vinicole dell'Australia del Sud e poi il 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 i waypoint intermedi forniti 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 le quattro tappe fornite nella richiesta, il servizio restituisce l'ordine ottimizzato:

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