Dostosowywanie ustawień routingu

Obliczenia trasy (w tym zmiana trasy) zwracają jako domyślną najlepszą trasę trasę, której trasa zajmuje najmniej czasu. Możesz jednak zmienić strategię routingu, tak aby zamiast niej zwracana była krótsza trasa.

Termin krótsza oznacza trasę, która jest najkrótsza wśród optymalnych tras w naszym domyślnym modelu kosztów. Krótsza trasa może nie być absolutnie najkrótsza, ponieważ ta opcja może być kiepska. Przykład: jeśli najkrótsza trasa ma długość 10 km, a nawigacja trwa 50 minut, a inna trasa trwa 15 km, ale nawigacja zajmuje tylko 20 minut, optymalnym rozwiązaniem jest drugi wybór, ponieważ poświęcenie 30 minut na zmniejszenie o 5 km nie jest dobrym rozwiązaniem.

Gdy ustawisz strategię wyznaczania trasy, nie zmieni się ona, dopóki podróż się nie zakończy. Aby zmienić strategię wyznaczania trasy w przypadku istniejącej już podróży, musisz wyczyścić miejsca docelowe i zresetować je ponownie z użyciem nowej strategii.

Pobieram szczegóły trasy

Aby określić, która strategia trasy jest optymalnym wyborem dla danego punktu pośredniego, wywołaj getRouteInfo(), aby uzyskać szczegóły zarówno domyślnej najlepszej trasy, jak i absolutnie krótszej trasy. Szczegóły obejmują czas trwania i odległość do docelowego punktu pośredniego.

Te dane pochodzą z RouteInfo i są zwracane w 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 przy wywołaniu funkcji setDestinations().

Funkcja 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ższym rankingu jest najkrótsza z zwróconych.

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 wolisz uwzględnić opcje promów w ramach swoich tras, możesz zmienić to ustawienie, aby umożliwić podróż do fragmentów promów, ustawiając 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 ustawienia krótszej trasy objaśnienia wzdłuż trasy wyświetlają szczegółowe informacje o odległości. Zamiast nich możesz używać objaśnień z szacowanym czasem dotarcia na miejsce.

Konfigurowanie formatu objaśnienia trasy

Możesz zmienić format objaśnienia trasy, wywołując funkcję setRouteCalloutInfoFormat w NavigationView (lub w NavigationFragment). Funkcja setRouteCalloutInfoFormat przyjmuje jedną z tych wartości wyliczeniowych:

Wartość wyliczeniaOpis
RouteCalloutInfoFormat.DEFAULT Wyświetla czas pozostały, gdy używana jest domyślna najlepsza strategia routingu trasy. Wyświetla odległość pozostałą podczas korzystania ze strategii wyznaczania krótszej trasy.
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);