Bei Routenberechnungen (einschließlich Umleitungen) wird die Route mit der kürzesten Fahrzeit als standardmäßige beste Route 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 Route, die unter den optimalen Routen basierend auf unserem Standardkostenmodell die kürzeste ist. Die kürzere Route ist möglicherweise nicht die absolut kürzeste Route, da diese Option eine schlechte Alternative sein kann. 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 Wahl optimal, da es sich nicht lohnt, 30 Minuten zu sparen, um 5 km weniger zu fahren.
Sobald Sie die Routingstrategie für eine Fahrt festgelegt haben, ändert sie sich erst, wenn die Fahrt abgeschlossen ist. Wenn Sie die Routingstrategie für eine vorhandene Fahrt ändern möchten, müssen Sie die Zielorte löschen und mit der neuen Routingstrategie neu festlegen.
Routendetails abrufen
Um zu ermitteln, welche Routenstrategie die optimale Wahl für einen bestimmten Wegpunkt ist, rufen Sie getRouteInfoForDestination() auf, um Routendetails für die standardmäßige beste Route und 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
Das folgende Codebeispiel zeigt, wie Sie Routendetails für jede der 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 festlegen, wenn Sie setDestinations() aufrufen.
routingStrategy verwendet einen der folgenden Enumerationswerte:
| Enumerationswert | Beschreibung |
|---|---|
| GMSNavigationRoutingStrategyDefaultBest | Routen werden nach dem Standardkostenmodell des Navigation SDK eingestuft. Dies ist die standardmäßige Routingstrategie. |
| GMSNavigationRoutingStrategyShorter | Routen werden nach Entfernung eingestuft. Die Route mit der höchsten Einstufung ist die kürzeste der zurückgegebenen Routen. |
Beispiel
Das folgende Codebeispiel zeigt, 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ährverbindungen in Ihre Routen einbeziehen möchten, können Sie diese Routingeinstellung anpassen, um die Fahrt für Fährverbindungen zu aktivieren. Setzen Sie dazu avoidsFerries auf false.
Beispiel
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Format der Routen-Callouts
Bei der Routingstrategie für die kürzere Route werden in den Callouts entlang der Route Details zur Entfernung angezeigt. Sie können stattdessen aber auch Callouts mit der voraussichtlichen Ankunftszeit verwenden.
Format der Routen-Callouts konfigurieren
Sie können das Format der Routen-Callouts ändern, indem Sie routeCalloutFormat in GMSMapView festlegen. routeCalloutFormat verwendet einen der folgenden Enumerationswerte:
| Enumerationswert | Beschreibung |
|---|---|
| GMSNavigationRouteCalloutFormatDefault | Zeigt die verbleibende Zeit an, wenn die standardmäßige beste Routingstrategie verwendet wird. Zeigt die verbleibende Entfernung an, wenn die Routingstrategie für die kürzere Route verwendet wird |
| GMSNavigationRouteCalloutFormatTime | Zeigt die verbleibende Zeit an. |
| GMSNavigationRouteCalloutFormatDistance | Zeigt die verbleibende Entfernung an. |
Beispiel
Das folgende Codebeispiel zeigt, wie Sie das Format der Routen-Callouts konfigurieren.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;