Pośrednie punkty pośrednie są domyślnie używane do zatrzymywania w przypadku odbioru i oddania, ale możesz też określić, że pośredni punkt pośredni ma służyć tylko do przejazdu.
Trasa, która zawiera punkt początkowy, pośredni punkt pośredni i docelowy punkt pośredni oraz tylko jeden etap trasy, który łączy miejsce początkowe i docelowe w drodze przez pośredni punkt pośredni (via
).
Skonfiguruj pośredni punkt kontrolny jako punkt kontrolny przelotowy, ustawiając właściwość via
punktu kontrolnego na true
za pomocą punktu kontrolnego (REST) lub punktu kontrolnego (gRPC).
Właściwość via
jest najbardziej skuteczna podczas tworzenia tras w odpowiedzi na przeciąganie punktów na mapie przez użytkownika. Dzięki temu użytkownik może zobaczyć w czasie rzeczywistym, jak może wyglądać końcowa trasa, i ma pewność, że punkty na trasie są umieszczone w lokalizacjach dostępnych dla tras Compute.
Poniższy przykład pokazuje, jak oznaczyć pośredni punkt pośredni jako punkt pośredni.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
Dostęp do identyfikatorów miejsc docelowych na trasie
Jeśli określisz lokalizację punktu początkowego, docelowego lub pośredniego jako ciąg znaków adresu lub kod plus, interfejs API spróbuje znaleźć najbardziej odpowiednią lokalizację, która ma odpowiedni identyfikator miejsca. Tablica geocodingResults.intermediates
w wynikach zawiera identyfikator miejsca odpowiadający lokalizacji punktów kontrolnych wraz z dodatkowymi danymi o tej lokalizacji.
W przypadku każdego elementu tablicy intermediates
użyj właściwości intermediateWaypointRequestIndex
, aby określić, który punkt pośredni w żądaniu odpowiada identyfikatorowi miejsca w odpowiedzi.
Na przykład:
W żądaniu podajesz 3 punkty pośrednie. Dwa z nich są określone za pomocą ciągów adresów, a jeden – za pomocą współrzędnych szerokości i długości geograficznej.
W polu maski odpowiedzi uwzględniasz element
geocodingResults
, aby zwrócić w wynikach tablicęgeocodingResults
.
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'
Odpowiedź zawiera tablicę geocodingResults
z identyfikatorem miejsca docelowego, miejsca wylotu i 2 z 3 punktów pośrednich. Są to punkty kontrolne o indeksach 0 i 2 w żądaniu. Punkt kontrolny o indeksie 1 w żądaniu został określony za pomocą współrzędnych geograficznych, dlatego został pominięty w tablicy geocodingResults
w odpowiedzi.
{ "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" } ] } }