Obliczenia trasy (w tym przekierowania) zwracają jako domyślną najlepszą trasę tę, która zajmuje najmniej czasu. Możesz jednak zmienić strategię routingu, aby zamiast tego zwracana była krótsza z możliwych tras.
Termin krótszy oznacza najkrótszą z optymalnych tras na podstawie naszego domyślnego modelu kosztów. Krótsza trasa może nie być najkrótszą, ponieważ może to być zła opcja. Jeśli np. 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 elementzie 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ę routingu możesz skonfigurować, ustawiając wartość RoutingOptions.routingStrategy
, gdy wywołujesz funkcję setDestinations()
.
RoutingOptions.routingStrategy
przyjmuje jedną z tych wartości enumeracji:
Wartość wyliczenia | Opis |
---|---|
RoutingStrategy.DEFAULT_BEST | Nadaje priorytety trasom na podstawie domyślnego modelu kosztów w pakiecie SDK do nawigacji. Jest to domyślna strategia kierowania. |
RoutingStrategy.SHORTER | Ustawia trasy według odległości. Trasa o najwyższym priorytecie jest najkrótsza spośród wszystkich zwróconych tras. |
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 NavSDK wyklucza trasy obejmujące promy. Jeśli chcesz uwzględniać opcje przeprawy promowej na swoich trasach, możesz dostosować to ustawienie, aby uwzględnić przejazdy promem, ustawiając wartość avoidFerries
na false
.
Przykład
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
Format objaśnienia dotyczącego trasy
W przypadku preferencji dotyczącej krótszej trasy ramki wzdłuż trasy wyświetlają informacje o odległości. Zamiast tego możesz użyć informacji o przewidywanym czasie dotarcia.
Konfigurowanie formatu informacji o trasie
Format informacji o trasie możesz zmienić, wywołując funkcję setRouteCalloutInfoFormat
w funkcji NavigationView
(lub NavigationFragment
). setRouteCalloutInfoFormat
przyjmuje jedną z tych wartości wyliczenia:
Wartość wyliczenia | Opis |
---|---|
RouteCalloutInfoFormat.DEFAULT | Wyświetla czas pozostały do przejazdu przy użyciu domyślnej strategii wyznaczania trasy. Wyświetla odległość do pokonania przy użyciu strategii routingu krótszą trasą. |
RouteCalloutInfoFormat.TIME | Wyświetla pozostały czas. |
RouteCalloutInfoFormat.DISTANCE | Wyświetla pozostały dystans. |
Przykład
Poniższy przykładowy kod pokazuje, jak skonfigurować format powiadomienia o trasie.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);