Domyślnie pośrednie punkty trasy są używane do zatrzymywania się w celu odbioru i wysadzenia pasażerów, ale możesz też określić, że pośredni punkt trasy ma służyć tylko do przejazdu.
Trasa, która zawiera punkt początkowy, punkt pośredni i punkt docelowy, ma tylko 1 odcinek łączący punkt początkowy z docelowym, który przechodzi przez punkt pośredni (nazywany via
).
Aby skonfigurować pośredni punkt trasy jako punkt przelotowy, ustaw właściwość via
punktu trasy na true
za pomocą Waypoint (REST) lub Waypoint (gRPC).
Właściwość via
jest najbardziej przydatna podczas tworzenia tras w odpowiedzi na przeciąganie przez użytkownika punktów pośrednich na mapie. Dzięki temu użytkownik może w czasie rzeczywistym zobaczyć, jak będzie wyglądać ostateczna trasa, i upewnić się, że punkty pośrednie znajdują się w miejscach dostępnych dla interfejsu Compute Routes.
Ten przykład pokazuje, jak oznaczyć pośredni punkt trasy jako punkt przelotowy.
{ "location": { "latLng": { "latitude":37.419734, "longitude":-122.0827784 } }, "via": true }
Dostęp do identyfikatorów miejsc dla pośrednich punktów trasy
Jeśli określisz lokalizację punktu początkowego, docelowego lub pośredniego jako ciąg adresu lub kod Plus Code, 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 pośrednich oraz dodatkowe dane o lokalizacji.
W przypadku każdego elementu tablicy intermediates
użyj właściwości intermediateWaypointRequestIndex
, aby określić, który pośredni punkt pośredni w żądaniu odpowiada identyfikatorowi miejsca w odpowiedzi.
Na przykład:
W żądaniu określasz 3 pośrednie punkty na trasie. Dwa z tych punktów pośrednich są określone przez ciągi znaków adresu, a jeden przez współrzędne szerokości i długości geograficznej.
W masce pola odpowiedzi umieść
geocodingResults
, aby określić, że w wynikach ma być zwracana tablicageocodingResults
.
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 identyfikatorami miejsc dla punktu początkowego, miejsca docelowego i 2 z 3 punktów pośrednich. Są to punkty pośrednie o indeksach 0 i 2 w żądaniu. Punkt pośredni o indeksie 1 w żądaniu został określony za pomocą współrzędnych geograficznych, więc jest pomijany 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" } ] } }