Manchmal möchten Sie vielleicht die Route planen, die Ihre App den Nutzern vorschlägt. Mit einem Routentoken aus der Routes API, der Routes Preferred API oder der Route Optimization API können Sie zwei Dinge für Ihre geplante Route angeben:
Eine Polylinie für die Route
Ihre Routenziele
Hier sind einige Beispiele für Routingziele:
Lieferzeit minimieren: Ein Unternehmen, das Lebensmittel liefert, möchte möglicherweise die Lieferzeit minimieren.
Reisedauer oder Kraftstoffverbrauch minimieren: Ein Logistikunternehmen möchte die Effizienz seiner Fahrer verbessern und die Kraftstoffkosten senken.
Zeit bis zum Ziel minimieren: Bei einem Service-Dispatch-Vorgang soll die Zeit minimiert werden, die Operatoren benötigen, um zu einem Auftrag zu gelangen.
Kosten senken und Sicherheit verbessern: Ein Fahrdienstanbieter möchte möglicherweise eine Route finden, die für die Fahrgäste günstiger ist und aus Sicherheitsgründen bestimmte Bereiche meidet.
Weitere Informationen zum Planen einer Route mit einem Routentoken finden Sie unter Routentoken abrufen in der Routes API und unter Übergangspolylinien und Routentokens in der Route Optimization API.
Vorteile von Routentokens für Routenziele
Mit einem Routentoken aus der Routes API, der Routes Preferred API oder der Route Optimization API haben Sie mehr Kontrolle über die bereitgestellte Route:
Planen Sie im Voraus eine Route, die im Navigation SDK verwendet werden soll.
Wählen Sie die beste Route für das Navigation SDK aus. Wenn Sie beim Generieren von Routen in der Routes API Routen-Tokens anfordern, erhalten Sie für jede generierte Route ein Routen-Token. Sie können dann das Token für die Route auswählen, die Sie verwenden möchten, wenn Sie es an das Navigation SDK übergeben.
Schätzen Sie den Preis im Voraus, einschließlich Schätzungen für die voraussichtliche Ankunftszeit und die Entfernung. Die tatsächlichen Kosten und die Zeit können zwar variieren, aber diese Schätzung verringert die Differenz zwischen den erwarteten und den tatsächlichen Routenkosten.
Erweiterte Routenziele angeben, z. B. verbrauchsarme Routen oder die kürzeste Route.
Funktionsweise von Routentokens
Sie können die Routes API, die Routes Preferred API oder die Route Optimization API verwenden, um eine Route anhand von Routenzielen zu planen. Sie können ein von einer dieser APIs zurückgegebenes Routentoken an das Navigation SDK übergeben, um die Routenführung für Ihr Fahrzeug zu steuern.
Das passiert, wenn Sie ein Routentoken anfordern und verwenden:
Die Routes API, die Routes Preferred API oder die Route Optimization API gibt ein verschlüsseltes Routentoken zurück, das die Routenpolylinie und die Routenziele enthält.
Sie übergeben das Routentoken an das Navigation SDK.
Das Navigation SDK startet die Navigation auf der geplanten Route, auch wenn eine schnellere Route verfügbar ist.
Wenn sich während der Fahrt die Verkehrs- oder Straßenverhältnisse ändern oder das Fahrzeug die geplante Route verlässt, berechnet das Navigation SDK eine neue Route, die den Routenzielen und Routingoptionen in Ihrem Routentoken entspricht.
So wird die tatsächliche Route möglichst nah an der geplanten Route gehalten.
Warum eine geplante Route möglicherweise nicht genau eingehalten wird
Die Navigation beginnt auf der geplanten Route, die tatsächliche Route kann jedoch in folgenden Situationen davon abweichen:
- Das Fahrzeug startet nicht am geplanten Startpunkt.
- Die Verkehrs- oder Straßenverhältnisse ändern sich während der Fahrt.
- Das Fahrzeug verlässt die geplante Route.
Diese Unterschiede können sich auf die Entfernung, die voraussichtliche Ankunftszeit und andere wichtige Merkmale der Fahrt auswirken, die Sie geplant haben.
Route mit einem Routentoken planen
Sie können eine Route planen, indem Sie ein Routentoken erstellen und es dann an das Navigation SDK übergeben. Gehen Sie dazu so vor:
Schritt 1: Routentoken mit der Routes API, Routes Preferred API oder Route Optimization API erstellen
Fordern Sie ein Routentoken an. Dazu haben Sie folgende Möglichkeiten:
Routes API:
computeRoutes. Weitere Informationen zum Anfordern eines Routentokens in der Routes API finden Sie unter Route berechnen und Routentoken abrufen.Routes Preferred API:
computeCustomRoutes. Weitere Informationen zum Anfordern eines Routentokens in der Routes Preferred API finden Sie unter Route planen.Route Optimization API:
optimizeToursoderbatchOptimizeTours. Weitere Informationen zum Anfordern eines Routentokens in der Route Optimization API finden Sie unter Übergangspolylinien und Routentokens.
Richten Sie Ihre Routes API- oder Routes Preferred API-Anfrage so ein, dass die Anforderungen für die Verwendung eines Routentokens erfüllt werden:
- Legen Sie
travelModeaufDRIVEoderTWO_WHEELERfest. - Legen Sie
routingPreferenceaufTRAFFIC_AWAREoderTRAFFIC_AWARE_OPTIMALfest. - Verwenden Sie keine
Via-Wegpunkte.
- Legen Sie
Schritt 2: Routentoken an das Navigation SDK übergeben
Routentoken speichern: Richten Sie im Navigation SDK einen String ein, um das Routentoken zu speichern. Beispiel:
let routeToken = "route token returned by Routes API"Beispiel für ein zurückgegebenes Routentoken:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }Übergeben Sie das Routentoken mit
mapView.navigator.setDestinationsan das Navigation SDK. Geben Sie dieselben Zielwegpunkte an, die Sie beim Erstellen des Routentokens verwendet haben:mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})Die Methode
setDestinationsübergibt den Status der Anfrage an ihren Callback. Wenn eine Route vom Standort des Nutzers zum angegebenen Ziel gefunden wird, lautet der Status.OK(GMSRouteStatusOK).
Szenarien mit mehreren Zwischenstopps
Sie können maximal 25 Wegpunkte konfigurieren.
Die Methode setDestinations unterstützt keine Fahrten mit mehreren Zwischenstopps. Verwenden Sie continueToNextDestinationWithCompletion(), um den Wegpunkt zum nächsten Abschnitt der Fahrt zu verschieben.
Beispiel
Die folgenden Codebeispiele zeigen, wie Sie eine geplante Route abrufen.
Swift
let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:location title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";
[mapView.navigator setDestinations:@[waypoint1, waypoint2]
routeToken:routeToken
callback:^(GMSRouteStatus routeStatus){...}];
Interaktion von Routentokens und dem Navigation SDK
So verarbeitet das Navigation SDK Ihre geplante Route:
Überschreibt alle zuvor festgelegten Ziele.
Verwendet den Startort des Fahrzeugs.
Passt sich an die Straßen- und Verkehrslage an. Weitere Informationen finden Sie unter Warum eine geplante Route möglicherweise nicht genau eingehalten wird.
Verwendet die in Ihrem Routentoken festgelegten Routingoptionen anstelle der folgenden Einstellungen in Ihrer App, auch wenn während der Fahrt eine neue Route berechnet wird:
avoidsHighwaysavoidsTollsavoidsFerrieslicensePlateRestriction- Die in Ihrer App festgelegte Mobilitätsform
Folgt diesen Einstellungen, wenn die Route berechnet oder angepasst wird:
Routenziele aus Ihrem Routentoken, z. B. die umweltfreundlichste oder die kürzeste Route. Wenn das Navigation SDK die Route anpassen muss, werden die Routenziele verwendet, die Sie beim Anfordern des Routentokens angegeben haben.
Wegpunktbezogene Optionen aus Ihrer App, z. B. die bevorzugte Straßenseite. Verwenden Sie dieselben Wegpunktoptionen, die Sie beim Anfordern des Routentokens angegeben haben.