Obliczenia trasy (w tym wyznaczanie nowej trasy) zwracają trasę, której pokonanie zajmuje najmniej czasu, jako domyślną najlepszą trasę. Możesz jednak zmienić strategię routingu, aby zamiast tego zwracać krótszą 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ć najkrótszą trasą, ponieważ może być słabą alternatywą. Jeśli np. najkrótsza trasa ma 10 km i przejechanie jej zajmuje 50 minut, a inna trasa ma 15 km, ale przejechanie jej 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 rozwiązaniem.
Po ustawieniu strategii wyznaczania trasy dla przejazdu nie zmieni się ona do czasu jego zakończenia. Aby zmienić strategię wyznaczania trasy w przypadku istniejącej podróży, musisz usunąć miejsca docelowe i ponownie je ustawić, korzystając z nowej strategii wyznaczania trasy.
Ustawianie strategii routingu
Strategię routingu możesz skonfigurować, ustawiając parametr
RoutingOptions.routingStrategy podczas wywoływania funkcji setDestinations().
RoutingOptions.routingStrategy przyjmuje jedną z tych wartości wyliczeniowych:
| Wartość typu wyliczeniowego | Opis |
|---|---|
| RoutingStrategy.DEFAULT_BEST | Klasyfikuje 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. Najwyżej oceniana trasa jest najkrótsza spośród 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, które obejmują promy
Domyślnie NavSDK wyklucza trasy, które obejmują promy. Jeśli wolisz uwzględniać w trasach opcje przeprawy promem, możesz dostosować to ustawienie trasy, aby uwzględniać w podróży odcinki przeprawy promem, 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 wywołania wzdłuż trasy wyświetlają szczegóły odległości. Zamiast tego możesz używać rozszerzeń z wywołaniem do działania w przypadku ETA.
Konfigurowanie formatu wywołania trasy
Format wywołania trasy możesz zmienić, wywołując setRouteCalloutInfoFormatw NavigationView (lub w NavigationFragment). setRouteCalloutInfoFormatprzyjmuje jedną z tych wartości wyliczeniowych:
| Wartość typu wyliczeniowego | Opis |
|---|---|
| RouteCalloutInfoFormat.DEFAULT | Wyświetla pozostały czas podczas korzystania z domyślnej strategii wyznaczania najlepszej trasy. Wyświetla pozostałą odległość podczas korzystania ze strategii wyznaczania krótszej trasy. |
| RouteCalloutInfoFormat.TIME | Wyświetla pozostały czas. |
| RouteCalloutInfoFormat.DISTANCE | Wyświetla pozostałą odległość. |
Przykład
Poniższy przykład kodu pokazuje, jak skonfigurować format wywołania trasy.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);