Route planen

Manchmal möchten Sie vielleicht die Route planen, die Ihre App den Fahrern bereitstellt. Mit einem Routentoken der Routes API (oder Routes Preferred API) können Sie zwei Dinge für Ihre geplante Route festlegen:

  • Polylinie für die Route

  • Ihre Routenziele

Hier sind einige Beispiele für mögliche Routingziele:

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

  • Fahrzeit 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 Dienstweiterleitungsvorgang kann es hilfreich sein, die für den Aufruf von Operatoren für eine Jobanfrage erforderliche Zeit zu verkürzen.

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

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

Vorteile eines Routentokens für Routenziele

Mit einem Routentoken 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 soll.

  • Wählen Sie die beste Route für das Navigation SDK aus. Wenn Sie beim Generieren von Routen in der Routes API Routentoken anfordern, erhalten Sie für jede generierte Route ein Routentoken. Anschließend können Sie das Token für die Route auswählen, die Sie bei der Übergabe an das Navigation SDK verwenden möchten.

  • Schätzen Sie den Preis im Voraus ein, einschließlich Angaben zur voraussichtlichen Ankunftszeit und zur Strecke. Auch wenn die tatsächlichen Kosten und die Dauer variieren können, reduziert diese Schätzung die Differenz zwischen den erwarteten und tatsächlichen Routenkosten.

  • Geben Sie erweiterte Routenziele an, z. B. die umweltfreundliche Route oder die kürzeste Route.

Funktionsweise von Routes API-Routentokens

Mit der Routes API oder der Routes Preferred API können Sie eine Route anhand von Routenzielen planen. Die Routes API gibt ein Routentoken zurück, das Sie an das Navigation SDK übergeben können, um die Routenplanung für Ihr Fahrzeug festzulegen.

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 Routenpolygone und Routenziele enthält.

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

  3. Das Navigation SDK ruft die Route ab. Falls sie aufgrund von sich ändernden Bedingungen nicht verfügbar ist, wird die am besten passende Route abgerufen.

  4. Wenn sich während der Fahrt die Verkehrslage oder andere Straßenverhältnisse ändern oder ein Fahrzeug von der geplanten Route abweicht, versuchen die geänderten Routen fortlaufend, die beste Route anhand der Routenziele im Token zu finden.

Dadurch wird die Entfernung zwischen der tatsächlichen Route und der geplanten Route maximiert.

Warum eine geplante Route nicht genau befolgt wird

Betrachten Sie Ihre geplante Route und Ihre Routenziele als Richtlinien, die Sie befolgen sollten: Sie sind nicht vorgeschrieben. Aufgrund von Unterschieden in den Straßenbedingungen, dem Startort oder anderen Parametern, die sich seit dem Erstellen der geplanten Route geändert haben, kann es zu Abweichungen zwischen Ihrer geplanten Route und der Route der geführten Navigation kommen. Das kann unter anderem zu Abweichungen zwischen den geplanten und den tatsächlichen Zielen für die Strecke und die voraussichtliche Ankunftszeit führen.

Route mit einem Routentoken planen

Zum Planen einer Route erstellen Sie ein Routentoken und übergeben es dann wie in den folgenden Schritten beschrieben an das Navigation SDK:

Schritt 1: Routentoken mit der Routes 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.
    • routing_preference auf TRAFFIC_AWARE oder TRAFFIC_AWARE_OPTIMAL festlegen
    • KEINE Via-Wegpunkte verwenden

Schritt 2: Routentoken an das Navigation SDK übergeben

  1. Speichern Sie das Routentoken: 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 auch 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, 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 dem 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 die Straßen- und Verkehrslage an. Weitere Informationen finden Sie unter Gründe dafür, dass eine geplante Route möglicherweise nicht genau befolgt wird.

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

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

    • Wegpunktoptionen, z. B. Einstellung für Straßenverlauf

    • 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 Wegpunktoptionen verwenden, die Sie in der Routes API angegeben haben.