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.

Die Routes API kann die angegebene Route optimieren, indem die Haltestellen in einer effizienteren Reihenfolge neu angeordnet werden. Bei der Wegpunktoptimierung wird die Fahrtzeit optimiert. Bei der Auswahl der besten Route werden aber auch andere Faktoren wie Entfernung und Anzahl der Abzweigungen berücksichtigt.

Um Wegpunkte zu optimieren

  1. Für keinen der Wegpunkte in der Route muss via auf true gesetzt sein, z. B. {"address": "Clare,SA", "via": true}. Weitere Informationen zu Wegpunkten finden Sie unter Wegpunkte angeben.

  2. Achten Sie darauf, dass routing_preference nicht auf TRAFFIC_AWARE_OPTIMAL festgelegt ist.

  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")

Optimierung der Wegpunktreihenfolge

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

  1. Indexiert die Wegpunkte automatisch gemäß der Reihenfolge, in der Sie sie in der Anfrage angegeben haben, beginnend mit 0.

  2. Optimiert die Reihenfolge der Wegpunkte mithilfe der Indexnummern, die den Wegpunkten in der Anfrage zugewiesen wurden.

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

Beispiel

In dieser Anfrage wird um eine Optimierung einer Route von Adelaide, Südaustralien, zu jeder der wichtigsten Weinregionen Südaustraliens und anschließender Rückkehr nach Adelaide gebeten.

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'

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

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

Unter Verwendung 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
            ]