Reihenfolge der Haltestellen auf der Route optimieren

Mit der Methode Compute Routes der Routes API wird standardmäßig eine Route mit mehreren Haltestellen, sogenannten Wegpunkten mit Aufenthalten, in der von Ihnen angegebenen Reihenfolge berechnet.

Die Routes API kann die angegebene Route optimieren, indem Sie Haltestellen in eine effizientere Reihenfolge bringen. Bei der Wegpunktoptimierung wird die Reisezeit optimiert, allerdings werden bei der Entscheidung, welche Route die effizienteste ist, auch andere Faktoren wie Entfernung und Anzahl der Abzweigungen berücksichtigt.

Wegpunkte optimieren

  1. Achten Sie darauf, dass für keinen der Wegpunkte in der Route via auf true gesetzt ist, 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")

Informationen zur Optimierung der Wegpunktreihenfolge

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

  1. Indexiert die Wegpunkte automatisch anhand der Reihenfolge, die Sie in der Anfrage angegeben haben, beginnend mit 0.

  2. Optimiert die Reihenfolge der Wegpunkte anhand 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

Mit diesem Ersuchen soll eine Optimierung einer Route von Adelaide in Südaustralien in jede der wichtigsten Weinregionen Südaustraliens und die Rückkehr nach Adelaide angefordert werden.

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 Wegpunkte in der Anfrage, 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 Wegpunkte in der Anfrage gibt der Dienst dann die optimierte Reihenfolge zurück:

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