Standardmäßig werden Zwischenziele für Abholungen und Absetzungen verwendet. Sie können aber auch angeben, dass ein Zwischenziel nur durchfahren werden soll.
Eine Route mit einem Startwegpunkt, einem Zwischenwegpunkt und einem Zielwegpunkt enthält nur einen Routenabschnitt, der den Start- und den Zielort verbindet und dabei den Zwischenwegpunkt (via
) durchläuft.
Konfigurieren Sie einen Zwischen-Waypoint als Pass-Through-Waypoint, indem Sie die via
-Eigenschaft des Waypoints auf true
setzen. Verwenden Sie dazu entweder Waypoint (REST) oder Waypoint (gRPC).
Die via
-Eigenschaft ist am effektivsten, wenn Routen als Reaktion darauf erstellt werden, dass der Nutzer die Wegpunkte auf der Karte zieht. So kann der Nutzer sehen, wie die endgültige Route in Echtzeit aussehen könnte, und sicherstellen, dass Wegpunkte an Orten platziert werden, die für die Berechnung von Routen zugänglich sind.
Das folgende Beispiel zeigt, wie Sie einen Zwischen-Waypoint als Pass-Through-Waypoint markieren.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
Orts-IDs für Wegpunkte entlang der Route abrufen
Wenn Sie den Standort eines Startpunkts, Ziels oder Wegpunkts als Adressstring oder als Plus Code angeben, versucht die API, den relevantesten Ort mit einer entsprechenden Orts-ID zu finden. Das Array geocodingResults.intermediates
in den Ergebnissen enthält die Orts-ID, die dem Standort der Wegpunkte entspricht, sowie zusätzliche Daten zum Standort.
Verwenden Sie für jedes Element des intermediates
-Arrays die intermediateWaypointRequestIndex
-Eigenschaft, um zu ermitteln, welcher Zwischenstopp in der Anfrage der Orts-ID in der Antwort entspricht.
Beispiel:
Sie geben drei Zwischenziele in einer Anfrage an. Zwei dieser Wegpunkte werden durch Adressstrings und einer durch Breiten-/Längengradkoordinaten angegeben.
Sie fügen
geocodingResults
in die Antwortfeldmaske ein, um anzugeben, dass dasgeocodingResults
-Array in den Ergebnissen zurückgegeben werden soll.
curl -X POST -d '{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "24 Willie Mays Plaza, San Francisco, CA 94107" }, "intermediates": [ { "address": "450 Serra Mall, Stanford, CA 94305, USA" }, { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } } }, { "address": "1836 El Camino Real, Redwood City, CA 94063" } ], "travelMode": "DRIVE", }' -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults' 'https://routes.googleapis.com/directions/v2:computeRoutes'
Die Antwort enthält das geocodingResults
-Array mit der Orts-ID für den Startpunkt, das Ziel und zwei der drei Wegpunkte. Dies sind die Wegpunkte mit den Indexen 0 und 2 der Anfrage. Da der Wegpunkt mit dem Index 1 der Anfrage mithilfe von Breitengrad-/Längengradkoordinaten angegeben wurde, wird er im geocodingResults
-Array in der Antwort ausgelassen.
{ "routes": [{...}], "geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g" }, "destination": { "geocoderStatus": {}, "type": [ "premise" ], "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY" }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 0, "type": [ "street_address" ], "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y" }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": 2, "type": [ "premise" ], "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0" } ] } }