Bei Routenberechnungen (einschließlich Neuberechnungen) wird die Route, die am wenigsten Zeit in Anspruch nimmt, 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 bezieht sich auf die kürzeste Route unter den optimalen Routen, die auf unserem Standardkostenmodell basieren. Die kürzere Route ist möglicherweise nicht die absolut kürzeste Route, da diese Option eine schlechte Alternative sein könnte. Wenn die absolut kürzeste Route beispielsweise 10 km lang ist und 50 Minuten dauert und eine andere Route 15 km lang ist, aber nur 20 Minuten dauert, ist die zweite Option optimal, da es sich nicht lohnt, 30 Minuten mehr zu investieren, um 5 km zu sparen.
Nachdem Sie die Routingstrategie für eine Fahrt festgelegt haben, ändert sie sich erst, wenn die Fahrt abgeschlossen ist. Wenn Sie die Routenstrategie für eine vorhandene Fahrt ändern möchten, müssen Sie die Ziele löschen und mit der neuen Routenstrategie neu festlegen.
Routendetails werden abgerufen
Wenn Sie herausfinden möchten, welche Routenstrategie für einen bestimmten Wegpunkt die optimale Wahl ist, rufen Sie getRouteInfoForDestination() auf, um Routendetails sowohl für die standardmäßige beste Route 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 GMSNavigationRouteInfo im Callback.
Beispiel
Im folgenden Codebeispiel wird gezeigt, wie Sie Routendetails für die beiden Routingstrategien abrufen.
Swift
let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
routingOptions: routingOptions) { routeInfo in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions =
[[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
withRoutingOptions:routingOptions
callback:^(GMSNavigationRouteInfo *routeInfo){...}];
Routingstrategie festlegen
Sie können die Routingstrategie mit GMSNavigationRoutingOptions konfigurieren und routingStrategy beim Aufrufen von setDestinations() festlegen.
routingStrategy hat einen der folgenden Aufzählungswerte:
| Aufzählungswert | Beschreibung |
|---|---|
| GMSNavigationRoutingStrategyDefaultBest | Routen werden nach dem Standardkostenmodell des Navigation SDK sortiert. Dies ist die Standardroutingstrategie. |
| GMSNavigationRoutingStrategyShorter | Ordnet Routen nach Entfernung ein. Die Route mit dem höchsten Rang ist die kürzeste der zurückgegebenen Routen. |
Beispiel
Im folgenden Codebeispiel wird gezeigt, wie Sie die Routingstrategie für die kürzere Route festlegen.
Swift
let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];
Routen mit Fähren
Standardmäßig werden im Navigation SDK for iOS Routen mit Fähren ausgeschlossen. Wenn Sie Fähren in Ihre Routen einbeziehen möchten, können Sie diese Routenpräferenz anpassen, um die Fahrt auf Fährensegmente auszuweiten. Setzen Sie dazu avoidsFerries auf false.
Beispiel
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Format für Routen-Callouts
Bei der Routingstrategie „Kürzere Route“ werden in den Infofeldern entlang der Route Entfernungsdetails angezeigt. Sie können stattdessen aber die Erweiterungen mit Zusatzinformationen für ETA verwenden.
Format für Routen-Callouts konfigurieren
Sie können das Format des Routen-Callouts ändern, indem Sie routeCalloutFormat in GMSMapView festlegen. routeCalloutFormat verwendet einen der folgenden Aufzählungswerte:
| Aufzählungswert | Beschreibung |
|---|---|
| GMSNavigationRouteCalloutFormatDefault | Zeigt die verbleibende Zeit an, wenn die Standardroutingstrategie „Beste Route“ verwendet wird. Zeigt die verbleibende Entfernung an, wenn die Routingstrategie „Kürzere Route“ verwendet wird |
| GMSNavigationRouteCalloutFormatTime | Zeigt die verbleibende Zeit an. |
| GMSNavigationRouteCalloutFormatDistance | Zeigt die verbleibende Entfernung an. |
Beispiel
Im folgenden Codebeispiel wird gezeigt, wie das Format für den Routen-Callout konfiguriert wird.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;