Domyślnie interfejs Routes API zwraca trasę domyślną, którą jest zwykle najszybszą trasę ze miejsca wylotu do celu. Gdy poprosisz o alternative, interfejs API zwraca maksymalnie 3 trasy wraz z trasami domyślnymi . Dzięki temu klienci będą mogli wybrać trasę, która najlepiej odpowiada ich potrzebom.
O czym warto pamiętać przy zgłaszaniu prośby o trasę alternatywną
Przy wysyłaniu próśb o alternatywne trasy pamiętaj o tych uwagach:
Możesz prosić o alternatywne trasy tylko w przypadku tras bez pośredniego punkty pośrednie. Żądanie alternatywnych tras, gdy trasa określa pośrednie punkty pośrednie nie powodują błędów. Nie ma jednak dla nas żadnych alternatyw .
Odpowiedź zawiera maksymalnie 3 alternatywne trasy. Pamiętaj jednak: czasami nie są dostępne alternatywne trasy, więc odpowiedź zawiera tylko trasę domyślną.
Ze względu na dodatkowe przetwarzanie wymagane do obliczenia wartości zapytań alternatywnych tras może wydłużyć czas odpowiedzi interfejs API.
Przykład żądania tras alternatywnych
Ustaw computeAlternativeRoutes
na true
, by poprosić o alternatywnych tras.
ten przykład pokazuje, jak zażądać tras alternatywnych w
computeRoutes
żądania REST.
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude":42.340173523716736, "longitude":-71.05997968330408 } } }, "destination":{ "location":{ "latLng":{ "latitude":42.075698891472804, "longitude": -72.59806562080408 } } }, "travelMode": "DRIVE", "routingPreference":"TRAFFIC_AWARE", "computeAlternativeRoutes": true }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
W tym przykładzie określasz maskę pola, tak aby odpowiedź zawierała tylko
Właściwości duration
, distanceMeters,
i routeLabels
w przypadku każdej trasy. Twoje
może następnie wykorzystać te informacje, aby wybrać trasę. Więcej
informacje znajdziesz w sekcji Wybieranie informacji do zwrócenia.
Przykładowa odpowiedź dotycząca tras alternatywnych
W odpowiedzi użyj właściwości tablicy routeLabels
, aby określić zasięg
trasa:
W przypadku trasy domyślnej właściwość
routeLabels
zawieraDEFAULT_ROUTE
W przypadku wszystkich tras alternatywnych właściwość
routeLabels
zawieraDEFAULT_ROUTE_ALTERNATE
W tym przykładzie odpowiedź zawiera trasę domyślną i 2 alternatywy
trasy. Zwróć uwagę, że wartości właściwości duration
i distanceMeters
są różne dla każdej trasy:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }
Uwzględnij w odpowiedzi linie łamane
Aby ułatwić użytkownikowi wybór trasy, dodaj atrybut linii łamanej dla każdej trasy do odpowiedzi. Następnie możesz: wyświetlić każdą linię łamaną na mapie.
Aby dodać linię łamaną, uwzględnij routes.polyline
w masce pola:
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'
Odpowiedź zawiera następnie linię łamaną dla każdej trasy:
{ "routes": [ { "distanceMeters": 150322, "duration": "5309s", "polyline": { "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE" ] }, { "distanceMeters": 157614, "duration": "6879s", "polyline": { "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] }, { "distanceMeters": 189311, "duration": "7376s", "polyline": { "encodedPolyline": "FVLL|Af@HPAV…PgA^qC" }, "routeLabels": [ "DEFAULT_ROUTE_ALTERNATE" ] } ] }