Standardmäßig werden Zwischenstopps für Abhol- und Bringstellen verwendet. Sie können aber auch angeben, dass ein Zwischenstopp nur zum Durchfahren gedacht ist.
Eine Route mit einem Start-, einem Zwischen- und einem Zielwegpunkt enthält nur einen Routenabschnitt, der den Start- und den Zielort verbindet und dabei den Zwischenwegpunkt (via
) passiert.
Konfigurieren Sie einen Zwischenpunkt als Durchgangspunkt, indem Sie die Eigenschaft via
des Wegpunkts entweder mit Waypoint (REST) oder Waypoint (gRPC) auf true
festlegen.
Die Eigenschaft via
ist am effektivsten, wenn Routen erstellt werden sollen, wenn der Nutzer die Wegpunkte auf der Karte zieht. So kann der Nutzer in Echtzeit sehen, wie die endgültige Route aussehen könnte, und dafür sorgen, dass Wegpunkte an Orten platziert werden, die für die Routenberechnung zugänglich sind.
Im folgenden Beispiel wird gezeigt, wie ein Zwischenwegpunkt als Passthrough-Wegpunkt markiert wird.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
Auf Orts-IDs für Wegpunkte zugreifen
Wenn Sie den Standort eines Start-, Ziel- oder Zwischenpunkts als Adressenstring oder als Plus Code angeben, versucht die API, den relevantesten Ort mit einer entsprechenden Orts-ID zu finden. Das geocodingResults.intermediates
-Array 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 Arrays intermediates
die Eigenschaft intermediateWaypointRequestIndex
, um zu ermitteln, welcher Zwischen-Wegpunkt in der Anfrage der Orts-ID in der Antwort entspricht.
Beispiel:
In einer Anforderung geben Sie drei Zwischenwegpunkte an. Zwei dieser Wegpunkte werden durch Adressstrings und einer durch Breiten- und 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 Array geocodingResults
mit der Orts-ID für den Start- und Zielort sowie für zwei der drei Wegpunkte. Dies sind die Wegpunkte an den Indexen 0 und 2 der Anfrage. Da der Wegpunkt mit Index 1 der Anfrage mithilfe von Breiten-/Längengradkoordinaten angegeben wurde, wird er aus dem geocodingResults
-Array in der Antwort entfernt.
{ "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" } ] } }