Reihenfolge der Haltestellen auf der Route optimieren

Standardmäßig berechnet die Compute Routes-Methode der Routes API eine Route über mehrere Zwischenstopps, sogenannte Zwischenstopp-Wegpunkte, in der Reihenfolge, in der Sie sie angeben.

Die Routes API kann die angegebene Route optimieren, indem Sie die in einer effizienteren Reihenfolge angehalten werden. Wegpunktoptimierung für Reisen Dabei werden auch andere Faktoren wie die Entfernung und die Anzahl der Abzweigungen berücksichtigt, welche Route am effizientesten ist.

Wegpunkte optimieren

  1. Für keinen der Wegpunkte der Route darf via auf true gesetzt sein, Beispiel: {"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")

Optimierung der Wegpunktreihenfolge

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

  1. Indexiert automatisch Wegpunkte basierend auf der von Ihnen angegebenen Reihenfolge in der Anfrage, 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 die Optimierung einer Route von Adelaide, Südaustralien, zu den wichtigsten Weinregionen Südaustraliens und zurück nach Adelaide angefragt.

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 Wegpunkte aus der Anfrage, beginnend bei 0. Beispiel:

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

Unter Verwendung der Indexnummern für die vier in der Anforderung angegebenen Wegpunkte wird der gibt der Dienst dann die optimierte Reihenfolge zurück:

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