Reihenfolge der Haltestellen auf der Route optimieren

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

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

Um Wegpunkte zu optimieren

  1. Für keinen der Wegpunkte der Route darf via auf true gesetzt sein, Beispiel: {"address": "Clare,SA", "via": true}. Weitere Informationen zu Wegpunkte 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 dem Feld an. Maske:

    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. Optimiert die Reihenfolge der Wegpunkte mithilfe der Indexnummern, die die den Wegpunkten in der Anfrage zugewiesen sind.

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

Beispiel

Diese Anfrage fordert die Optimierung einer Route aus Adelaide, South Australia, in jede der wichtigsten Weinregionen Südaustraliens und kehren dann nach Adelaide zurück.

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 aus 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 in der Anforderung angegebenen Wegpunkte wird der gibt der Dienst dann die optimierte Reihenfolge zurück:

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