Route planen

Manchmal möchten Sie die Route planen, die Ihre App Nutzern zur Verfügung stellt. Mit einem Routentoken aus der Routes API, Routes Preferred API oder 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 Routenziele:

  • Lieferzeit minimieren: Ein Unternehmen, das Lebensmittel liefert, möchte die Lieferzeit minimieren.

  • Reisezeit oder Kraftstoffverbrauch minimieren: Ein Logistikunternehmen möchte die Effizienz seiner Fahrer verbessern und die Kraftstoffkosten senken.

  • Zeit bis zum Ziel minimieren: Ein Dienstleistungsunternehmen möchte die Zeit minimieren, die benötigt wird, bis die Mitarbeiter eine Arbeitsanfrage erreichen.

  • Kosten senken und Sicherheit verbessern: Ein Mitfahrdienst möchte eine Route finden, die für die Fahrer weniger kostet und aus Sicherheitsgründen bestimmte Gebiete vermeidet.

Weitere Informationen zum Planen einer Route mit einem Routentoken finden Sie unter Routentoken in derRoutes API anfordern und Polylinien und Routen Tokensin der Route Optimization API übergeben.

Vorteile von Routentokens für Routenziele

Mit einem Routentoken aus der Routes API, Routes Preferred API oder Route Optimization API haben Sie mehr Kontrolle über die bereitgestellte Route:

  • Route im Voraus planen , die das Navigation SDK nach Möglichkeit verwenden soll.

  • Die beste Route für das Navigation SDK auswählen. Wenn Sie beim Erstellen von Routen in der Routes API Routentokens anfordern, erhalten Sie für jede erstellte Route ein Routentoken. 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 Lücke zwischen den erwarteten und den tatsächlichen Routenkosten.

  • Erweiterte Routenziele angeben, z. B. umweltfreundliche Routen oder die kürzeste Route.

Funktionsweise von Routentokens

Mit der Routes API, Routes Preferred API oder Route Optimization API können Sie eine Route mit Routenzielen planen. Sie können ein Routentoken, das von einer dieser APIs zurückgegeben wird, an das Navigation SDK übergeben, um festzulegen, wie das Fahrzeug geroutet werden soll.

So funktioniert das Anfordern und Verwenden eines Routentokens:

  1. Die Routes API, Routes Preferred API oder Route Optimization API gibt ein verschlüsseltes Routentoken zurück, das die Routenpolylinie und die Routenziele enthält.

  2. Sie übergeben das Routentoken an das Navigation SDK.

  3. Das Navigation SDK ruft die Route ab. Wenn die Route aufgrund geänderter Bedingungen nicht verfügbar ist, wird die am besten passende Route abgerufen.

  4. Wenn sich während der Fahrt die Verkehrs- oder Straßenverhältnisse ändern oder ein Fahrzeug von der geplanten Route abweicht, wird die geänderte Route immer wieder an die beste Route angepasst, basierend auf den Routenzielen im Token.

So wird sichergestellt, dass die tatsächliche Route so nah wie möglich an der geplanten Route liegt.

Warum eine geplante Route möglicherweise nicht genau eingehalten wird

Die geplante Route und die Routenziele sind Richtlinien, die Sie befolgen können, aber nicht müssen. Es kann Unterschiede zwischen der geplanten Route und der Route geben, die von der geführten Navigation bereitgestellt wird. 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. Diese Unterschiede können zu Abweichungen zwischen den geplanten und den tatsächlichen Zielen für Entfernung und voraussichtliche Ankunftszeit führen.

Route mit einem Routentoken planen

Sie können eine Route planen, indem Sie ein Routentoken erstellen und es dann an das Navigation SDK übergeben. Die Schritte sind unten beschrieben:

Schritt 1: Routentoken mit der Routes API, Routes Preferred API oder Route Optimization API erstellen

  1. Routentoken anfordern : Verwenden Sie eine der folgenden Methoden:

    • 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 oder batchOptimizeTours. Weitere Informationen zum Anfordern eines Route tokens in der Route Optimization API finden Sie unter Polylinien und Route Tokens übergeben.

  2. Anfrage an die Routes API oder Routes Preferred API einrichten , um die Anforderungen für die Verwendung eines Routentokens zu erfüllen:

    • Legen Sie travel_mode auf DRIVE oder TWO_WHEELER fest.
    • Legen Sie routing_preference auf TRAFFIC_AWARE oder TRAFFIC_AWARE_OPTIMAL fest.
    • Verwenden Sie keine Via-Wegpunkte.

Schritt 2: Routentoken an das Navigation SDK übergeben

  1. 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",
    }
    
  2. Routentoken übergeben: Verwenden Sie dazu das Navigation SDK mapView.navigator.setDestinations. 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, ist 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 zwischen Routentokens und dem Navigation SDK

So interagieren die vom Navigation SDK generierte Route und die geplante Route im Routentoken:

  • Überschreibt alle zuvor festgelegten Ziele.

  • Verwendet den Startort des Fahrzeugs.

  • Passt sich an Straßen- und Verkehrslage an. Weitere Informationen finden Sie unter Warum eine geplante Route möglicherweise nicht genau eingehalten wird.

  • Ignoriert die folgenden routingbezogenen Optionen, da sie nicht erforderlich sind:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • Folgt:

    • Wegpunktbezogene Optionen, z. B. die Bevorzugung der 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 wegpunktbezogenen Optionen verwenden, die Sie in der Routes API angegeben haben.