Reihenfolge der Haltestellen auf der Route optimieren

Standardmäßig wird mit der Methode Compute Routes der Routes API eine Route über mehrere Haltestellen, sogenannte Wegpunkte mit Aufenthalt, in der Reihenfolge berechnet, in der Sie sie angeben.

Sie können die Routes API die angegebene Route optimieren lassen, indem Sie die Haltestellen in eine effizientere Reihenfolge bringen. Bei der Wegpunktoptimierung wird die Fahrzeit optimiert, es werden aber auch andere Faktoren wie Entfernung und Anzahl der Abzweigungen berücksichtigt, um die effizienteste Route zu ermitteln.

Wegpunkte optimieren

  1. Achten Sie darauf, dass bei keinem der Wegpunkte in der Route via auf true gesetzt ist, z. B. {"address": "Clare,SA", "via": true}. Weitere Informationen zu Zwischenpunkten finden Sie unter Zwischenpunkte angeben.

  2. routing_preference darf nicht auf TRAFFIC_AWARE_OPTIMAL festgelegt sein.

  3. Setzen Sie optimize_waypoint_order auf true. Beispiel:

    "optimizeWaypointOrder": "true",
    
  4. Geben Sie das Feld routes.optimizedIntermediateWaypointIndex in der Feldmaske an:

    REST

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

Reihenfolge von Wegpunkten optimieren

So optimiert die Routes API die Reihenfolge der Wegpunkte in einer Route:

  1. Die Wegpunkte werden automatisch anhand der Reihenfolge indexiert, in der Sie sie in der Anfrage angeben, beginnend mit 0.

  2. Die Reihenfolge der Wegpunkte wird anhand der Indexnummern optimiert, die den Wegpunkten in der Anfrage zugewiesen wurden.

  3. Gibt die optimierte Reihenfolge der Wegpunkte im routes-Objekt im Feld waypoint_order unter routes.optimizedIntermediateWaypointIndex zurück.

Beispiel

Bei dieser Anfrage wird eine Route von Adelaide, Südaustralien, zu den wichtigsten Weinregionen Südaustraliens und zurück nach Adelaide optimiert.

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'

Die Routes API indexiert die in der Anfrage angegebenen Zwischenziele, beginnend bei 0. Beispiel:

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

Anhand der Indexnummern für die vier in der Anfrage angegebenen Wegpunkte gibt der Dienst dann die optimierte Reihenfolge zurück:

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