Routingeinstellungen anpassen

Bei Routenberechnungen (einschließlich Neuberechnung von Routen) wird die Route, die am wenigsten Zeit zum Navigieren benötigt, als beste Standardroute zurückgegeben. Sie können jedoch die Routingstrategie so ändern, dass stattdessen die kürzere der alternativen Routen zurückgegeben wird.

Der Begriff kürzer bezeichnet die Route, die gemäß unserem Standardkostenmodell die kürzeste unter den optimalen Routen ist. Die kürzere Route ist möglicherweise nicht die absolute kürzeste Route, da diese Option möglicherweise eine schlechte Alternative sein könnte. Wenn beispielsweise die absolut kürzeste Route 10 km ist und 50 Minuten für die Navigation benötigt wird und eine andere 15 km, aber nur 20 Minuten zum Navigieren dauert, ist die zweite Wahl optimal, da 30 Minuten zur Reduzierung von 5 km kein guter Kompromiss sind.

Wenn Sie die Routenstrategie für eine Fahrt festgelegt haben, ändert sie sich erst nach Abschluss der Fahrt. Wenn Sie die Routingstrategie für eine vorhandene Fahrt ändern möchten, müssen Sie die Ziele löschen und mit der neuen Routingstrategie wieder zurücksetzen.

Routendetails werden abgerufen

Um zu ermitteln, welche Routenstrategie die optimale Wahl für einen bestimmten Wegpunkt ist, rufen Sie getRouteInfo() auf. Dadurch erhalten Sie Routendetails sowohl für die beste Standardroute als auch die absolut kürzere Route. Zu den Details gehören die Dauer und die Entfernung zu einem Zielwegpunkt.

Diese Details stammen aus RouteInfo und werden in einem ListenableResultFuture zurückgegeben.

Beispiel

Das folgende Codebeispiel zeigt, wie Sie Routendetails für jede der beiden Routingstrategien abrufen.

ListenableResultFuture<RouteInfo> routeInfoFuture =
        navigator.getRouteInfo(waypoint, routingOptions);

Routingstrategie festlegen

Zum Konfigurieren der Routingstrategie legen Sie RoutingOptions.routingStrategy fest, wenn Sie setDestinations() aufrufen.

RoutingOptions.routingStrategy verwendet einen der folgenden Aufzählungswerte:

AufzählungswertBeschreibung
RoutingStrategy.DEFAULT_BEST Ranking von Routen gemäß dem Standardkostenmodell des Navigation SDK. Dies ist die Standardrouting-Strategie.
RoutingStrategy.SHORTER Routen werden nach Entfernung sortiert. Die Route mit dem höchsten Rang ist die kürzeste zurückgegebene Route.

Beispiel

Das folgende Codebeispiel zeigt, wie die kürzere Routenpräferenz festgelegt wird.

RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);

Routen mit Fähren

Routen mit Fähren werden vom NavSDK standardmäßig ausgeschlossen. Wenn Sie Fähroptionen lieber in Ihre Routen aufnehmen möchten, können Sie diese Routeneinstellungen so anpassen, dass die Fahrt Fährabschnitten zugänglich gemacht wird. Dazu setzen Sie avoidFerries auf false.

Beispiel

RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);

Format der Zusatzinformationen für Routen

Unter der kürzeren Routeneinstellung werden in den Zusatzinformationen entlang der Route Details zur Entfernung angezeigt. Sie können aber stattdessen Zusatzinformationen für erweiterte Textanzeigen verwenden.

Format des Routen-Callouts konfigurieren

Sie können das Format des Routen-Callouts ändern, indem Sie setRouteCalloutInfoFormat in NavigationView (oder in NavigationFragment) aufrufen. setRouteCalloutInfoFormat verwendet einen der folgenden Aufzählungswerte:

AufzählungswertBeschreibung
RouteCalloutInfoFormat.DEFAULT Zeigt die verbleibende Zeit an, wenn die standardmäßige Strategie für die beste Routenroute verwendet wird. Zeigt die verbleibende Entfernung an, wenn die Routenführungsstrategie mit einer kürzeren Route verwendet wird.
RouteCalloutInfoFormat.TIME Zeigt die verbleibende Zeit an.
RouteCalloutInfoFormat.DISTANCE Zeigt die verbleibende Entfernung an.

Beispiel

Im folgenden Codebeispiel wird gezeigt, wie das Format des Routen-Callouts konfiguriert wird.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);