Dostosowywanie ustawień routingu

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ść wyliczeniaOpis
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ść wyliczeniaOpis
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);