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.
Określenie 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ć absolutnie najkrótszą trasą, ponieważ ta opcja może być słabą alternatywą. Jeśli na przykład absolutnie 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.
Gdy ustawisz strategię routingu dla podróży, nie zmieni się ona do czasu jej zakończenia. Aby zmienić strategię routingu dla istniejącej podróży, musisz wyczyścić miejsca docelowe i ponownie je ustawić z nową strategią routingu.
Ustawianie strategii routingu
Strategię routingu możesz skonfigurować, ustawiając RoutingOptions.routingStrategy podczas wywoływania setDestinations().
RoutingOptions.routingStrategy przyjmuje jedną z tych wartości wyliczeniowych:
| Wartość wyliczeniowa | Opis |
|---|---|
| RoutingStrategy.DEFAULT_BEST | Klasyfikuje trasy według domyślnego modelu kosztów pakietu Navigation SDK. Jest to domyślna strategia routingu. |
| RoutingStrategy.SHORTER | Klasyfikuje trasy według odległości. Najwyżej oceniana trasa jest najkrótsza spośród tych zwróconych. |
Przykład
Ten 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 promy
Domyślnie NavSDK wyklucza trasy obejmujące promy. Jeśli chcesz uwzględniać opcje promów w swoich trasach, możesz dostosować tę preferencję routingu, aby uwzględnić segmenty podróży 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 objaśnienia na trasie wyświetlają szczegóły odległości. Możesz jednak używać objaśnień z szacowanym czasem dotarcia.
Konfigurowanie formatu objaśnienia trasy
Format objaśnienia trasy możesz zmienić, wywołując setRouteCalloutInfoFormat w NavigationView (lub w NavigationFragment). setRouteCalloutInfoFormat przyjmuje jedną z tych wartości wyliczeniowych:
| Wartość wyliczeniowa | Opis |
|---|---|
| RouteCalloutInfoFormat.DEFAULT | Wyświetla pozostały czas w przypadku korzystania z domyślnej strategii routingu najlepszej trasy. Wyświetla pozostałą odległość w przypadku korzystania ze strategii routingu krótszej trasy strategii. |
| RouteCalloutInfoFormat.TIME | Wyświetla pozostały czas. |
| RouteCalloutInfoFormat.DISTANCE | Wyświetla pozostałą odległość. |
Przykład
Ten przykład kodu pokazuje, jak skonfigurować format objaśnienia trasy.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);