Obliczenia trasy (w tym przekierowanie) zwracają trasę, która zajmuje najmniej czasu na przejazd jako domyślną najlepszą trasę. Możesz jednak zmienić strategię routingu, aby zamiast tego zwracana była krótsza z możliwych tras.
Termin krótszy oznacza trasę, która jest najkrótsza spośród optymalnych tras na podstawie naszego domyślnego modelu kosztów. Krótsza trasa może nie być absolutnie najkrótszą, ponieważ może to być zła alternatywa. Jeśli na przykład najkrótsza trasa ma długość 10 km i trwa 50 minut, a inna trasa ma długość 15 km, ale zajmuje tylko 20 minut, to druga opcja jest optymalna, ponieważ poświęcenie 30 minut na skrócenie trasy o 5 km nie jest dobrym kompromisem.
Gdy ustawisz strategię wyznaczania trasy dla podróży, nie będzie ona się zmieniać, dopóki podróż się nie zakończy. Aby zmienić strategię wyznaczania trasy dla istniejącej podróży, musisz wyczyścić miejsca docelowe i ustawić je ponownie z nową strategią.
Pobieranie szczegółów trasy
Aby określić, która strategia trasy jest optymalnym wyborem w przypadku danego punktu orientacyjnego, wywołaj funkcję getRouteInfo()
, aby uzyskać szczegóły trasy domyślnej najlepszej i najkrótszej. Szczegóły obejmują czas trwania i odległość do punktu docelowego.
Te informacje pochodzą z RouteInfo
i są zwracane w ramach ListenableResultFuture
.
Przykład
Poniższy przykładowy kod pokazuje, jak uzyskać szczegóły trasy dla każdej z 2 strategii routingu.
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
Konfigurowanie strategii kierowania
Strategię kierowania możesz skonfigurować, ustawiając parametr RoutingOptions.routingStrategy
podczas wywołania funkcji setDestinations()
.
RoutingOptions.routingStrategy
przyjmuje jedną z tych wartości enumeracji:
Wartość wyliczenia | Opis |
---|---|
RoutingStrategy.DEFAULT_BEST | Ustawia kolejność tras według domyślnego modelu kosztów w pakiecie SDK do nawigacji. Jest to domyślna strategia routingu. |
RoutingStrategy.SHORTER | Uwzględnia odległość. Trasa o najwyższym priorytecie jest najkrótsza spośród wszystkich zwróconych. |
Przykład
Poniższy przykład kodu pokazuje, jak ustawić preferencję krótszej trasy.
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
Trasy obejmujące przeprawy promowe
Domyślnie pakiet SDK wyklucza trasy, które obejmują przeprawy promowe. Jeśli chcesz uwzględniać opcje przepraw promowych w ramach swoich tras, możesz dostosować tę preferencję wyznaczania trasy, aby uwzględnić przejazdy promem. W tym celu ustaw wartość avoidFerries
na false
.
Przykład
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
Format objaśnienia trasy
W przypadku preferencji dotyczącej krótszej trasy napisy na trasie wyświetlają informacje o odległości. Możesz jednak użyć nakładek ETA.
Konfigurowanie formatu informacji o trasie
Format informacji o trasie można zmienić, wywołując funkcję setRouteCalloutInfoFormat
w funkcji NavigationView
(lub w funkcji NavigationFragment
). Funkcja setRouteCalloutInfoFormat
przyjmuje jedną z tych wartości wyliczenia:
Wartość wyliczenia | Opis |
---|---|
RouteCalloutInfoFormat.DEFAULT | Wyświetla czas pozostały do dojazdu, gdy używana jest domyślna strategia wyznaczania trasy. Wyświetla odległość pozostałą do przebycia przy użyciu strategii wyznaczania trasy krótszą drogą. |
RouteCalloutInfoFormat.TIME | Wyświetla pozostały czas. |
RouteCalloutInfoFormat.DISTANCE | Wyświetla odległość do celu. |
Przykład
Poniższy przykładowy kod pokazuje, jak skonfigurować format powiadomienia o trasie.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);