Manchmal möchten Sie die Route planen, die Ihre App Nutzern zur Verfügung stellt. Mit einem Routen-Token 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 einige Beispiele für Routing-Zielvorhaben:
Lieferzeit minimieren: Ein Unternehmen, das Lebensmittel liefert, möchte möglicherweise die Lieferzeit minimieren.
Reisezeit oder Kraftstoffverbrauch minimieren: Ein Logistikunternehmen möchte möglicherweise die Effizienz seiner Fahrer verbessern und die Kraftstoffkosten senken.
Zeit bis zum Ziel minimieren: Bei einem Serviceeinsatz soll die Zeit, die benötigt wird, um Mitarbeiter zu einer Jobanfrage zu bringen, möglicherweise minimiert werden.
Kosten senken und Sicherheit verbessern: Ein Fahrdienstunternehmen möchte möglicherweise eine Route finden, die für Fahrgäste weniger kostet und aus Sicherheitsgründen bestimmte Gebiete meidet.
Weitere Informationen zum Planen einer Route mit einem Routen-Token finden Sie unter Routen-Token anfordern in der Routes API und unter Polylinien und Routen-Tokens umstellen in der Route Optimization API.
Warum ein Routen-Token für Routenziele verwenden?
Mit einem Routen-Token aus der Routes API, der Routes Preferred API oder der Route Optimization API haben Sie mehr Kontrolle über die bereitgestellte Route:
Planen Sie eine Route im Voraus, damit das Navigation SDK sie bei Bedarf verwenden kann.
Die beste Route für das Navigation SDK auswählen 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.
Preis im Voraus schätzen, einschließlich Schätzungen für die voraussichtliche Ankunftszeit und die Entfernung. Die tatsächlichen Kosten und die tatsächliche Zeit können zwar variieren, aber diese Schätzung verringert die Diskrepanz zwischen den erwarteten und den tatsächlichen Routenkosten.
Erweiterte Routenziele angeben, z. B. verbrauchsarme Routen oder die kürzeste Route.
Funktionsweise von Routen-Tokens
Mit der Routes API, der Routes Preferred API oder der Route Optimization API können Sie eine Route anhand von Routenzielen planen. Sie können ein Routen-Token, das von einer dieser APIs zurückgegeben wird, an das Navigation SDK übergeben, um die Routenführung für Ihr Fahrzeug zu steuern.
So funktioniert das Anfordern und Verwenden eines Routentokens:
Die Routes API, die Routes Preferred API oder die Route Optimization API geben ein verschlüsseltes Routentoken zurück, das die Routen-Polylinie und die Routenziele enthält.
Sie übergeben das Routen-Token an das Navigation SDK.
Das Navigation SDK ruft die Route ab. Wenn die Route aufgrund sich ändernder Bedingungen nicht verfügbar ist, wird die am besten passende Route abgerufen.
Wenn sich während der Fahrt auf der Route die Verkehrs- oder Straßenverhältnisse ändern oder ein Fahrzeug von der geplanten Route abweicht, wird die beste Route basierend auf den Routenzielen im Token kontinuierlich neu berechnet.
So wird sichergestellt, dass die tatsächliche Route möglichst genau der geplanten Route entspricht.
Warum eine geplante Route möglicherweise nicht genau eingehalten wird
Betrachten Sie Ihre geplante Route und die Routenziele als Richtlinien, die Sie befolgen können, aber nicht müssen. Es kann sein, dass sich Ihre geplante Route von der Route der Sprachnavigation unterscheidet. Das liegt an Unterschieden bei den Straßenverhältnissen, dem Startort oder anderen Parametern, die sich seit der Erstellung der geplanten Route geändert haben. Dieser Unterschied kann zu einer Abweichung zwischen Ihren geplanten und tatsächlichen Zielen für Entfernung und voraussichtliche Ankunftszeit sowie anderen wichtigen Reisequalitäten führen.
Route mit einem Routen-Token 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: Routen-Token mit der Routes API, Routes Preferred API oder Route Optimization API erstellen
Fordern Sie ein Routen-Token mit einer der folgenden Methoden an:
Routes API:
computeRoutes
. Weitere Informationen zum Anfordern eines Routentokens in der Routes API finden Sie unter Route berechnen und Routentoken anfordern.Routes Preferred API:
computeCustomRoutes
. Weitere Informationen zum Anfordern eines Routentokens in der Routes Preferred API finden Sie unter Route planen.Route Optimization API:
optimizeTours
oderbatchOptimizeTours
. Weitere Informationen zum Anfordern eines Routen-Tokens in der Route Optimization API finden Sie unter Übergangspolylinien und Routen-Tokens.
Richten Sie Ihre Anfrage für die Routes API oder die Routes Preferred API ein, um die Anforderungen für die Verwendung eines Routentokens zu erfüllen:
- Legen Sie
travel_mode
aufDRIVING
oderTWO_WHEELER
fest. - Legen Sie
routing_preference
aufTRAFFIC_AWARE
oderTRAFFIC_AWARE_OPTIMAL
fest. - KEINE
Via
Wegpunkte verwenden
- Legen Sie
Schritt 2: Routentoken an das Navigation SDK übergeben
Routentoken speichern: Richten Sie im Navigation SDK einen String zum Speichern des Routentokens ein. 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 der Methode
mapView.navigator setDestinations
an das Navigation SDK und geben Sie dieselben Ziel-Waypoints an, die Sie beim Erstellen des Routentokens verwendet haben:mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})
Die Methode Navigator.setDestinations
gibt den Status der Anfrage zurück.
Wenn eine Route vom Standort des Nutzers zum angegebenen Ziel gefunden wird, wirdRouteStatus.OK
zurückgegeben.
Weitere Informationen zu dieser Methode finden Sie unter GMSNavigator.setDestinations
.
Beispiel
Die folgenden Codebeispiele zeigen, wie Sie eine geplante Route abrufen.
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: {...})
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:coordinate 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 interagieren die vom Navigation SDK generierte Route und die geplante Route im Routen-Token:
Überschreibt alle zuvor festgelegten Ziele.
Verwendet den Startort des Fahrzeugs.
Berücksichtigt Straßen- und Verkehrsbedingungen. Weitere Informationen
Ignoriert die folgenden routingbezogenen Optionen, da sie nicht benötigt werden:
avoidsHighways
avoidsTolls
avoidsFerries
licensePlateRestriction
Mit „Folgen“ markiert:
Wegpunktbezogene Optionen, z. B. die bevorzugte Straßenseite.
Routenziele: Wenn das Navigation SDK die zurückgegebene Route anpassen muss, werden die Routenziele verwendet, die Sie beim Anfordern des Routentokens angegeben haben. Aus diesem Grund sollten Sie dieselben Optionen für Wegpunkte verwenden, die Sie in der Routes API angegeben haben.