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