Routingeinstellungen anpassen

Bei Routenberechnungen (einschließlich der Neuberechnung der Route) 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 Route, die im Vergleich zu anderen optimalen Routen auf Grundlage unseres Standardkostenmodells die kürzeste ist. Die kürzere Route ist möglicherweise nicht die absolut kürzeste Route, da diese Option möglicherweise eine schlechte Alternative darstellt. Wenn die 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 zu investieren, um 5 km zu sparen.

Sobald Sie die Routingstrategie für eine Fahrt festgelegt haben, ändert sie sich erst wieder, wenn die Fahrt abgeschlossen ist. Wenn Sie die Routingstrategie für eine vorhandene Fahrt ändern möchten, müssen Sie die Ziele löschen und mit der neuen Routingstrategie neu festlegen.

Routendetails abrufen

Um zu ermitteln, 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. Die Details umfassen 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 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 kann einen der folgenden Aufzählungswerte haben:

AufzählungswertBeschreibung
GMSNavigationRoutingStrategyDefaultBest Ranks routes by the Navigation SDK default cost model. Dies ist die Standard-Routingstrategie.
GMSNavigationRoutingStrategyShorter Ordnet Routen nach Entfernung ein. Die Route mit dem höchsten Ranking ist die kürzeste der zurückgegebenen Routen.

Beispiel

Das folgende Codebeispiel zeigt, wie die Routingstrategie für die kürzere Route festgelegt wird.

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 Routeneinstellung anpassen, indem Sie avoidsFerries auf false festlegen.

Beispiel

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

Format der Zusatzinformationen für Routen

Bei der Routingstrategie „Kürzere Route“ werden in den Hinweisen entlang der Route Entfernungsdetails angezeigt. Stattdessen können Sie die Hinweise zur voraussichtlichen Ankunftszeit verwenden.

Format für Routen-Callout konfigurieren

Sie können das Format der Routenbeschriftung ändern, indem Sie routeCalloutFormat in GMSMapView festlegen. routeCalloutFormat kann einen der folgenden Enumerationswerte annehmen:

AufzählungswertBeschreibung
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 D – Zeigt die verbleibende Distanz an.

Beispiel

Das folgende Codebeispiel zeigt, wie das Format des Routen-Callouts konfiguriert wird.

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;