Route planen

Von Zeit zu Zeit kann es von Vorteil sein, die Route zu planen, die Ihre App den Nutzern bereitstellt. Mit einem Routentoken aus der Routes API (oder Routes Preferred API) können Sie zwei Dinge für Ihre geplante Route angeben:

  • Polylinie für die Route

  • Ihre Routenziele

Hier sind einige Beispiele für Routingziele:

  • Schnellere Lieferung: Ein Unternehmen, das Essen liefert, möchte die Zeit bis zur Lieferung minimieren.

  • Fahrtzeit oder Kraftstoffverbrauch minimieren: Ein Logistikunternehmen möchte möglicherweise die Effizienz seiner Fahrer steigern und die Kraftstoffkosten senken.

  • Zeit bis zum Ziel minimieren: Bei einem Dienstweiterleitungsvorgang kann es sinnvoll sein, die Zeit zu minimieren, die benötigt wird, um Operatoren zu einer Jobanfrage zu erhalten.

  • Kosten senken und Sicherheit verbessern: Ein Mitfahrdienst möchte möglicherweise eine Route finden, die für Fahrgäste günstiger ist und aus Sicherheitsgründen bestimmte Bereiche vermeidet.

Weitere Informationen zum Planen einer Route mit einem Routentoken finden Sie unter Routentoken anfordern.

Gründe für die Verwendung eines Routingtokens für Routenziele

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

  • Planen Sie eine Route im Voraus, die das Navigation SDK nach Möglichkeit verwenden kann.

  • Die beste Route für das Navigation SDK auswählen Wenn Sie beim Generieren von Routen in der Routes API Routentokens anfordern, erhalten Sie für jede generierte 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.

  • Schätzen Sie den Preis im Voraus, einschließlich einer Schätzung für die voraussichtliche Ankunftszeit und die Entfernung. Auch wenn die tatsächlichen Kosten und die tatsächliche Zeit variieren können, reduziert diese Schätzung den Unterschied zwischen den erwarteten und den tatsächlichen Routenkosten.

  • Legen Sie erweiterte Routenziele fest, z. B. Eco-Routing oder die kürzeste Route.

Funktionsweise von Routentokens der Routes API

Sie können die Routes API oder die Routes Preferred API verwenden, um eine Route mit Routenzielen zu planen. Die Routes API gibt ein Routentoken zurück, das Sie an das Navigation SDK übergeben können, um die Routenführung Ihres Fahrzeugs zu steuern.

Wenn Sie ein Routentoken von der Routes API anfordern und verwenden, geschieht Folgendes:

  1. Die Routes API gibt ein verschlüsseltes Routentoken zurück, das die Polylinie und die Routenziele enthält.

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

  3. Das Navigation SDK ruft die Route ab. Ist sie aufgrund von sich ändernden Bedingungen nicht verfügbar, wird die beste übereinstimmende Route abgerufen.

  4. Wenn sich die Verkehrslage oder andere Straßenverhältnisse während der Fahrt ändern oder ein Fahrzeug von der geplanten Route abweicht, wird auf den geänderten Routen kontinuierlich versucht, anhand der Routenziele im Token die beste Route zuzuordnen.

Auf diese Weise wird die Entfernung der tatsächlichen Route an der geplanten Route maximiert.

Warum einer geplanten Route möglicherweise nicht genau gefolgt wird

Betrachten Sie Ihre geplanten Routen- und Routenziele als Richtlinien, die Sie befolgen müssen: Sie sind nicht vorgeschrieben. Unter Umständen unterscheidet sich die geplante Route von der Route, die von der geführten Navigation bereitgestellt wird. Grund dafür sind Unterschiede bei den Straßenbedingungen, dem Startort oder anderen Parametern, die sich seit der Erstellung der geplanten Route geändert haben. Das kann unter anderem zu einer Abweichung 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 wie in den folgenden Schritten beschrieben an das Navigation SDK übergeben:

Schritt 1: Routentoken mit der Routes API oder Routes Preferred API erstellen

  1. Fordern Sie mit einer der folgenden Methoden ein Routentoken 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.

  2. Richten Sie Ihre Routenanfrage so ein, dass sie die Anforderungen für die Verwendung eines Routentokens erfüllt:

    • Setzen Sie travel_mode auf DRIVING.
    • Setzen Sie routing_preference auf TRAFFIC_AWARE oder TRAFFIC_AWARE_OPTIMAL.
    • KEINE Via-Wegpunkte verwenden

Schritt 2: Routentoken an das Navigation SDK übergeben

  1. 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",
    }
    
  2. Übergeben Sie das Routentoken mithilfe der Methode mapView.navigator setDestinations an das Navigation SDK und geben Sie dabei dieselben Ziel-Wegpunkte 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. Wird eine Route vom Standort des Nutzers zum angegebenen Ziel gefunden, wird RouteStatus.OK zurückgegeben.

Weitere Informationen zu dieser Methode finden Sie unter Navigator.setDestinations.

Beispiel

Die folgenden Codebeispiele zeigen, wie eine geplante Route abgerufen wird.

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: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 Navigation SDK

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

  • Überschreibt alle zuvor festgelegten Ziele.

  • Der Startort des Fahrzeugs wird verwendet.

  • Passt sich an die Straßen- und Verkehrslage an. Weitere Informationen finden Sie unter Gründe, warum eine geplante Route möglicherweise nicht genau befolgt wird.

  • Die folgenden Routingoptionen werden als nicht benötigt ignoriert:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • Folge ich:

    • Optionen für Wegpunkte, z. B. die Einstellung für Straßenseitenstraßen.

    • Routenziele: Wenn das Navigation SDK die zurückgegebene Route anpassen muss, verwendet es die Routenziele, die Sie beim Anfordern des Routentokens angegeben haben. Aus diesem Grund sollten Sie dieselben Wegpunktoptionen verwenden, die Sie in der Routes API angegeben haben.