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.
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
Achten Sie darauf, dass bei keinem der Wegpunkte in der Route
via
auftrue
gesetzt ist, z. B.{"address": "Clare,SA", "via": true}
. Weitere Informationen zu Zwischenpunkten finden Sie unter Zwischenpunkte angeben.routing_preference
darf nicht aufTRAFFIC_AWARE_OPTIMAL
festgelegt sein.Setzen Sie
optimize_waypoint_order
auftrue
. Beispiel:"optimizeWaypointOrder": "true",
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:
Die Wegpunkte werden automatisch anhand der Reihenfolge indexiert, in der Sie sie in der Anfrage angeben, beginnend mit 0.
Die Reihenfolge der Wegpunkte wird anhand der Indexnummern optimiert, die den Wegpunkten in der Anfrage zugewiesen wurden.
Gibt die optimierte Reihenfolge der Wegpunkte im
routes
-Objekt im Feldwaypoint_order
unterroutes.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 ]