Obliczenia trasy (w tym zmiany trasy) zwracają trasę, która zajmuje najmniej czasu, jako domyślną najlepszą trasę. Możesz jednak zmienić strategię wyznaczania trasy, aby zamiast tego zwracana była krótsza z alternatywnych tras.
Termin krótsza 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ć bezwzględnie najkrótsza, ponieważ taka opcja może być niekorzystna. Jeśli na przykład najkrótsza trasa ma 10 km i jej pokonanie zajmuje 50 minut, a inna trasa ma 15 km, ale jej pokonanie zajmuje tylko 20 minut, druga opcja jest optymalna, ponieważ poświęcenie 30 minut na skrócenie trasy o 5 km nie jest dobrym rozwiązaniem.
Po ustawieniu strategii wyznaczania trasy dla przejazdu nie zmieni się ona, dopóki przejazd się nie zakończy. Aby zmienić strategię wyznaczania trasy dla istniejącego przejazdu, musisz usunąć miejsca docelowe i ustawić je ponownie z nową strategią wyznaczania trasy.
Konfigurowanie strategii routingu
Strategię routingu możesz skonfigurować, ustawiając RoutingOptions.routingStrategy podczas wywoływania setDestinations().
RoutingOptions.routingStrategy przyjmuje jedną z tych wartości typu wyliczeniowego:
| Wartość typu wyliczeniowego | Opis |
|---|---|
| RoutingStrategy.DEFAULT_BEST | Porządkuje trasy według domyślnego modelu kosztów pakietu Navigation SDK. Jest to domyślna strategia routingu. |
| RoutingStrategy.SHORTER | Ustawia kolejność tras według odległości. Trasa o najwyższej pozycji w rankingu jest najkrótsza z zwróconych. |
Przykład
Poniższy przykładowy kod 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 NavSDK wyklucza trasy, które obejmują przeprawy promowe. Jeśli wolisz uwzględniać opcje promowe w trasach, możesz dostosować to ustawienie, aby uwzględniać odcinki promowe, ustawiając 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 krótszej trasy objaśnienia wzdłuż trasy wyświetlają szczegóły dotyczące odległości. Zamiast tego możesz używać objaśnień dotyczących szacowanego czasu dotarcia na miejsce.
Konfigurowanie formatu objaśnienia trasy
Możesz zmienić format objaśnienia trasy, wywołując setRouteCalloutInfoFormat w NavigationView (lub w NavigationFragment). setRouteCalloutInfoFormat przyjmuje jedną z tych wartości typu wyliczeniowego:
| Wartość typu wyliczeniowego | Opis |
|---|---|
| RouteCalloutInfoFormat.DEFAULT | Wyświetla czas pozostały do celu, gdy używana jest domyślna strategia wyznaczania najlepszej trasy. Wyświetla pozostałą odległość, gdy używasz strategii wyznaczania krótszej trasy. |
| RouteCalloutInfoFormat.TIME | Wyświetla pozostały czas. |
| RouteCalloutInfoFormat.DISTANCE | Wyświetla pozostałą odległość. |
Przykład
Poniższy przykładowy kod pokazuje, jak skonfigurować format objaśnienia trasy.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);