Dostosowywanie ustawień routingu

Obliczenia trasy (z uwzględnieniem zmiany trasy) zwracają domyślną najlepszą trasę, która zajmuje najkrótszy czas nawigacji. Możesz jednak zmienić strategię wyznaczania trasy, tak aby zwracana była krótsza trasa alternatywna.

Termin krótszy oznacza trasę, która jest najkrótsza spośród optymalnych tras w oparciu o nasz domyślny model kosztów. Krótsza trasa może nie być absolutnie najkrótszą trasą, ponieważ taka opcja może być słabą alternatywą. Jeśli np. najkrótsza trasa ma 10 km, a nawigacja zajmuje 50 minut, a inna – 15 km, ale poruszanie się zajmuje tylko 20 minut, drugi wybór jest optymalny, ponieważ poświęcenie 30 minut na zredukowanie 5 km nie jest dobrym rozwiązaniem.

Strategia wyznaczania trasy dla trasy nie zmieni się, dopóki trasa nie zostanie zakończona. Aby zmienić strategię wyznaczania trasy dla istniejącej podróży, musisz wyczyścić miejsca docelowe i zresetować je ponownie z użyciem nowej strategii.

Pobieram szczegóły trasy

Aby ustalić, która strategia trasy jest optymalną opcją danego punktu na drodze, wywołaj getRouteInfo(), aby uzyskać szczegóły zarówno domyślnej, jak i najkrótszej trasy. Szczegóły obejmują czas podróży i odległość do docelowego punktu na trasie.

Te szczegóły pochodzą z usługi RouteInfo, a są zwracane w funkcji ListenableResultFuture.

Przykład

Poniższy przykładowy kod pokazuje, jak uzyskać szczegóły trasy dla każdej z dwóch strategii routingu.

ListenableResultFuture<RouteInfo> routeInfoFuture =
        navigator.getRouteInfo(waypoint, routingOptions);

Konfigurowanie strategii routingu

Strategię routingu możesz skonfigurować, ustawiając RoutingOptions.routingStrategy podczas wywoływania funkcji setDestinations().

RoutingOptions.routingStrategy przyjmuje jedną z tych wartości wyliczeniowych:

Wartość wyliczeniaOpis
RoutingStrategy.DEFAULT_BEST Ranking tras według domyślnego modelu kosztów pakietu Navigation SDK. To jest domyślna strategia routingu.
RoutingStrategy.SHORTER Ranking tras według odległości. Trasa o najwyższej pozycji w rankingu to najkrótsza ze zwróconych tras.

Przykład

Poniższy przykładowy kod pokazuje, jak ustawić krótszą trasę.

RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);

Trasy obejmujące promy

Domyślnie pakiet NavSDK wyklucza trasy obejmujące promy. Jeśli chcesz uwzględniać w trasach opcje promów, możesz dostosować to ustawienie, aby udostępnić podróż promom. W tym celu wybierz ustawienie 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 krótszej trasy objaśnienia mogą wyświetlać informacje o odległości. Możesz jednak użyć objaśnień dotyczących szacowanego czasu dotarcia na miejsce.

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ść wyliczeniaOpis
RouteCalloutInfoFormat.DEFAULT Wyświetla pozostały czas, gdy używana jest domyślna strategia wyznaczania tras. Wyświetla pozostały dystans, gdy stosowana jest strategia wyznaczania tras na krótszym czasie.
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);