Czasami możesz chcieć zaplanować trasę, jaką Twoja aplikacja dociera do użytkowników. Za pomocą z interfejsu Routes API (lub preferowanego interfejsu Routes Preferred API). dwie rzeczy dla planowanej trasy:
Linia łamana trasy
Cele trasy
Oto kilka przykładów celów kierowania:
Minimalizowanie czasu dostawy: firma dostarczająca jedzenie może chcieć ograniczyć do minimum ile czasu zajmuje dostarczenie jedzenia.
Minimalizowanie czasu podróży i zużywania paliwa: firma logistyczna może chcieć poprawa wydajności kierowców i obniżenie kosztów paliwa.
Zminimalizuj czas do celu: do wykonania operacji wysyłania usługi do skrócenia czasu potrzebnego na uzyskanie operatorów w żądaniu zadania.
Niższe koszty i większe bezpieczeństwo: firmy oferujące wspólne przejazdy mogą chcieć trasa tańsza dla pasażerów i omijająca określone obszary ze względów bezpieczeństwa. .
Więcej informacji o planowaniu trasy z użyciem tokena trasy znajdziesz w artykule Wyślij prośbę o token trasy.
Dlaczego warto używać tokena trasy w celach związanych z trasą
Token trasy z preferowanego interfejsu API tras lub tras zapewnia większą jaka trasa będzie przebiegać:
Zaplanuj z wyprzedzeniem trasę, z której będzie korzystać pakiet Navigation SDK. jeśli to możliwe.
Wybierz najlepszą trasę do użycia przez pakiet SDK nawigacji. Jeśli zażądasz tokenów tras podczas generowania tras w interfejsie Routes API, otrzymasz token trasy dla każdej wygenerowanej trasy. Następnie możesz wybrać token na wybraną trasę. Pakiet SDK do nawigacji.
Oszacuj cenę z wyprzedzeniem, w tym szacowany czas dotarcia na miejsce i odległość. Rzeczywisty koszt i czas mogą się różnić, ale to oszacowanie zmniejsza różnicę między spodziewanego i rzeczywistego kosztu trasy.
określać bardziej zaawansowane cele, takie jak wyznaczanie tras ekologicznych czy najkrótsza trasa .
Jak działają tokeny tras interfejsu Routes API
Możesz używać interfejsu Routes API lub Preferowanego interfejsu Routes API aby zaplanować trasę za pomocą celów związanych z trasą. Interfejs Routes API zwraca błąd token trasy, który można przekazać do pakietu Navigation SDK, aby wskazać, kieruje pojazdem.
Oto, co się dzieje, gdy wysyłasz prośbę o token trasy i go używasz z Interfejs Routes API:
Interfejs Routes API zwraca zaszyfrowany token trasy, który zawiera trasę. celów linii łamanej i trasy.
Token trasy przekazujesz do pakietu Navigation SDK.
Pakiet Navigation SDK pobiera trasę lub jeśli trasa nie jest dostępne ze względu na zmieniające się warunki, pobiera najlepsze dopasowanie .
jeśli podczas jazdy trasą zmieni się natężenie ruchu lub inne warunki na drodze, pojazd odjeżdża od zaplanowanej trasy, zmienione trasy są stale spróbuje dopasować najlepszą trasę na podstawie celów trasy podanych w tokenie.
Ten proces pozwala zmaksymalizować odległość między rzeczywistą trasą a planowaną trasą.
Dlaczego zaplanowana trasa może nie zostać dokładnie przemierzona
Zaplanowaną trasę i cele trasy należy traktować jak wytyczne do przestrzegania: nie są wymogiem. Możesz zauważyć różnicę między zaplanowaną trasą trasa wyznaczona w ramach nawigacji z powodu różnic na drodze warunków, lokalizacji początkowej lub innych parametrów, które uległy zmianie od utworzył zaplanowaną trasę. Ta różnica może powodować niezgodność między planowane i rzeczywiste cele związane z odległością i szacowanym czasem dotarcia na miejsce i odtwarzania.
Planowanie trasy z użyciem tokena trasy
Możesz zaplanować trasę, tworząc token trasy i przekazując go do pakietu Navigation SDK zgodnie z opisem w tych krokach:
Krok 1. Utwórz token trasy za pomocą preferowanego interfejsu API tras lub tras
Wyślij żądanie tokena trasy, korzystając z jednej z tych metod:
Interfejs Routes API:
computeRoutes
. Więcej informacji na temat: żądania tokena trasy w interfejsie Routes API, zobacz Obliczanie trasy oraz Wyślij prośbę o token trasy.Preferowany interfejs API tras:
computeCustomRoutes
. Więcej informacji na temat: żądania tokena trasy w preferowanym interfejsie Routes Preferred API, Zaplanuj trasę.
Skonfiguruj prośbę o trasę, aby spełnić wymagania korzystania z trasy. token:
- Ustaw
travel_mode
naDRIVING
- Ustaw
routing_preference
naTRAFFIC_AWARE
lubTRAFFIC_AWARE_OPTIMAL
- NIE używaj punktów pośrednich Via
- Ustaw
Krok 2. Przekaż token trasy do pakietu Navigation SDK
Przechowywanie tokena trasy: w pakiecie Navigation SDK skonfiguruj ciąg znaków. do przechowywania tokena trasy. Na przykład:
String routeToken = "route token returned by Routes API";
Przykład zwróconego tokena trasy:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }
Przekaż token trasy do pakietu Navigation SDK za pomocą Metoda
Navigator.setDestinations
, określająca to samo miejsce docelowe punkty pośrednie użyte podczas tworzenia tokena trasy:setDestinations(List
destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions); Na przykład:
CustomRoutesOptions customRoutesOptions = CustomRoutesOptions.builder() .setRouteToken(routeToken) .build();
Metoda Navigator.setDestinations
zwraca stan żądania.
Jeśli znajdzie trasę z lokalizacji pojazdu do danego miejsca docelowego,
zwraca RouteStatus.OK
.
Więcej informacji o tej metodzie znajdziesz w artykule
Navigator.setDestinations
Przykład
Poniższy przykładowy kod pokazuje, jak określić zaplanowaną trasę za pomocą token trasy.
ArrayList <Waypoint> destinations = Lists.newArrayList();
Waypoint waypoint1 =
Waypoint.builder()
.setLatLng(10, 20)
.setTitle("title")
.setVehicleStopover(true)
.build();
destinations.add(waypoint1);
Waypoint waypoint2 =
Waypoint.builder()
.setPlaceId("ChIJYV-J-ziuEmsRIMyoFaMedU4")
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(waypoint2);
String routeToken = "route token returned by Routes API";
CustomRoutesOptions customRoutesOptions =
CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(CustomRoutesOptions.TravelMode.TWO_WHEELER)
.build();
// Existing flow to get a Navigator.
NavigationApi.getNavigator(...);
// Existing flow for requesting routes.
ListenableResultFuture<RouteStatus> routeStatusFuture =
navigator.setDestinations(destinations, customRoutesOptions);
// Or with display options.
DisplayOptions displayOptions = new DisplayOptions();
ListenableResultFuture<RouteStatus> routeStatusFuture =
navigator.setDestinations(destinations, customRoutesOptions, displayOptions);
Jak współdziałają tokeny kierowania z pakietem SDK Navigation
Trasa wygenerowana przez pakiet Navigation SDK oraz planowana trasa w tokenie trasy:
Zastępuje wszystkie wcześniej ustawione miejsca docelowe.
Używa lokalizacji pojazdu.
Dostosowuje do warunków na drodze i natężeniu ruchu. Zobacz Dlaczego zaplanowana trasa może nie być dokładnie przemierzona.
Ignoruje te opcje związane z routingiem jako niepotrzebne:
avoidsHighways
avoidsTolls
avoidsFerries
licensePlateRestriction
Obserwatorzy:
Opcje związane z punktami pośrednimi, takie jak preferencja pobocznej drogi.
Cele trasy. Jeśli pakiet Navigation SDK musi i dostosuje zwróconą trasę, użyjemy celów trasy określonych podczas żądania tokena trasy. Z tego powodu należy użyć tego samego opcje związane z punktami pośrednimi określone w interfejsie Routes API.