Podczas obliczania trasy (z uwzględnieniem zmiany trasy) trasa, która zajmuje najkrótszy czas nawigacji, jest zwracana jako domyślna najlepsza trasa. Możesz jednak zmienić strategię wyznaczania trasy, tak aby zwracana była krótsza trasa alternatywna.
Termin krótszy oznacza, że trasa jest najkrótszą spośród optymalnych wyników wyznaczania tras na podstawie naszego domyślnego modelu kosztów. Krótsza trasa może nie być absolutnie najkrótsza, ponieważ może być słabą alternatywą. Jeśli np. najkrótsza trasa ma 10 km, a nawigacja zajmuje 50 minut, a optymalna krótsza trasa to 15 km i przemierzanie trwa 20 minut, to straty czasu 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, musisz wyczyścić miejsca docelowe i zresetować je ponownie z użyciem nowej strategii.
Konfigurowanie strategii routingu
Możesz skonfigurować nawigację tak, by używała strategii wyznaczania krótszych tras. Aby to zrobić, ustaw RoutingOptions.routingStrategy
podczas dzwonienia do: setDestinations()
.
RoutingOptions.routingStrategy
przyjmuje jedną z tych 2 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ą strategię routingu trasy.
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
Szczegóły trasy
Jeśli krótsza trasa zajmuje zbyt dużo czasu, lepiej wybrać domyślną trasę. Możesz porównać strategie wyznaczania trasy, wywołując getRouteInfo()
, aby uzyskać szczegółowe informacje o trasie dla każdej z nich. Szczegóły obejmują czas trwania i odległość do docelowego punktu na trasie.
Pobieram szczegóły trasy
Możesz pobrać szczegóły trasy dla obu strategii routingu (domyślna najlepsza i krótsza trasa) dla pojedynczego punktu pośredniego. Te szczegóły pochodzą z funkcji RouteInfo
i 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);
Format objaśnienia trasy
W ramach strategii wyznaczania tras na krótszym czasie objaśnienia na trasie wyświetlają 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);