Bei Routenberechnungen (einschließlich Neuberechnung) wird die Route, die am wenigsten Zeit für die Navigation benötigt, als beste Standardroute zurückgegeben. Sie können die Routingstrategie jedoch so ändern, dass stattdessen die kürzere der Routenalternativen zurückgegeben wird.
Der Begriff kürzer bezeichnet die Route, die basierend auf unserem Standardkostenmodell die kürzeste unter den optimalen Routen ist. Die kürzere Route ist möglicherweise nicht die absolute kürzeste Route, da sie möglicherweise keine gute Alternative darstellt. Wenn beispielsweise die absolut kürzeste Route 10 km beträgt und für die Navigation 50 Minuten benötigt werden und eine andere Route 15 km dauert, aber nur 20 Minuten für die Navigation benötigt werden, ist die zweite Wahl die beste Wahl, da 30 Minuten weniger Zeit für die Verkürzung von fünf Kilometern erforderlich sind.
Nachdem Sie die Routenstrategie für eine Fahrt festgelegt haben, ändert sie sich erst nach Abschluss der Fahrt. Wenn Sie die Routenstrategie für eine vorhandene Fahrt ändern möchten, müssen Sie die Ziele löschen und mit der neuen Routenstrategie wieder zurücksetzen.
Routendetails abrufen
Um die beste Routenstrategie für einen bestimmten Wegpunkt zu ermitteln, rufen Sie getRouteInfo()
auf, um Routendetails sowohl für die beste Standardroute als auch für die absolut kürzere Route zu erhalten. 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 Routendetails für jede der beiden Routingstrategien abgerufen werden.
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
Routingstrategie festlegen
Sie können die Routingstrategie konfigurieren, indem Sie beim Aufrufen von setDestinations()
RoutingOptions.routingStrategy
festlegen.
Für RoutingOptions.routingStrategy
wird einer der folgenden Aufzählungswerte verwendet:
Aufzählungswert | Beschreibung |
---|---|
RoutingStrategy.DEFAULT_BEST | Bewertet Routen anhand des Standardkostenmodells des Navigation SDK. Dies ist die Standardroutingstrategie. |
RoutingStrategy.SHORTER | Sortiert Routen nach Entfernung. Die Route mit dem höchsten Rang ist die kürzeste Route, die zurückgegeben wird. |
Beispiel
Das folgende Codebeispiel zeigt, wie die kürzere Routeneinstellung festgelegt wird.
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
Routen mit Fährverbindungen
Standardmäßig schließt das NavSDK Routen aus, die Fähren enthalten. Wenn Sie lieber Fähroptionen in Ihre Routen aufnehmen möchten, können Sie diese Routingeinstellung so anpassen, dass die Fahrt auch auf Fährsegmenten verfügbar ist. 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 die Route
Bei einer kürzeren Routeneinstellung werden in den Zusatzinformationen entlang der Route Entfernungsdetails angezeigt. Sie können aber stattdessen die Zusatzinformationen für erweiterte Textanzeigen verwenden.
Format für Routen-Callouts konfigurieren
Sie können das Format der Routen-Callouts ändern, indem Sie setRouteCalloutInfoFormat
in NavigationView
(oder in NavigationFragment
) aufrufen. setRouteCalloutInfoFormat
verwendet einen der folgenden Aufzählungswerte:
Aufzählungswert | Beschreibung |
---|---|
RouteCalloutInfoFormat.DEFAULT | Zeigt die verbleibende Zeit an, wenn die Standardstrategie für die beste Routenroute verwendet wird. Zeigt die verbleibende Strecke an, wenn die Strategie für kürzere Routen verwendet wird. |
RouteCalloutInfoFormat.TIME | Zeigt die verbleibende Zeit an. |
RouteCalloutInfoFormat.DISTANCE | Zeigt die verbleibende Strecke an. |
Beispiel
Im folgenden Codebeispiel wird gezeigt, wie das Format für Routen-Callouts konfiguriert wird.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);