Route planen

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

  • Polylinie für die Route

  • Ihre Routenziele

Hier sind einige Beispiele für Routingziele:

  • Kürzere Lieferzeit: Ein Unternehmen, das Lebensmittel liefert, möchte möglicherweise wie lange es dauert, das Essen zu liefern.

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

  • Zeit bis zum Ziel minimieren: Ein Dienstweiterleitungsvorgang möchte möglicherweise die Zeit minimieren, bis Operatoren zu einer Jobanfrage benötigt werden.

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

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 API oder der Routes Preferred API haben Sie mehr Kontrolle über die angegebene Route:

  • Route im Voraus planen, die das Navigation SDK verwenden kann wenn möglich.

  • Die beste Route für das Navigation SDK auswählen Wenn Sie beim Generieren von Routen in der Routes API Routingtokens anfordern, erhalten Sie für jede generierte Route ein Routentoken. Sie können dann das Token auswählen, die Sie verwenden möchten, wenn Sie sie an die Navigation SDK

  • 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 Zeit variieren können, reduziert diese Schätzung die Lücke zwischen erwartete und tatsächliche Routenkosten berechnet.

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

Funktionsweise von Routentokens der Routes API

Sie können die Routes API oder die Routes Preferred API verwenden eine Route mit Routenzielen planen. Die Routes API gibt eine Routentokens, das Sie an das Navigation SDK übergeben können, Routen Ihres Fahrzeugs.

Wenn Sie ein Routing-Token von der API anfordern und verwenden, geschieht Folgendes: Routes API:

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

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

  3. Das Navigation SDK ruft die Route ab. Bedingungen verfügbar sind, werden die besten Übereinstimmungen Route.

  4. Wenn sich während der Fahrt die Verkehrslage oder die Straßenverhältnisse ändern oder ein Fahrzeug von der geplanten Route abweicht, werden die geänderten Routen ständig anhand der Routenziele im Token die beste Route abzugleichen.

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 sollten: sind nicht präskriptiv. Unter Umständen sehen Sie eine Abweichung zwischen Ihrer geplanten Route und die Route, die von der geführten Navigation aufgrund von Unterschieden in der Straße bereitgestellt wird Bedingungen, Startpositionen oder andere Parameter, die sich seit der hat die geplante Route erstellt. Dieser Unterschied kann zu einer Diskrepanz zwischen Ihre geplanten und tatsächlichen Ziele für Entfernung und voraussichtliche Ankunftszeit sowie andere wichtige Reiseziele Qualitäten zu verstehen.

Route mit einem Routentoken planen

Sie können eine Route planen, indem Sie ein Routentoken erstellen und es dann an das Navigation SDK, wie in den folgenden Schritten beschrieben:

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 zu Anfordern eines Routingtokens in der Routes API finden Sie unter Route berechnen und Routentoken anfordern

    • Routes Preferred API: computeCustomRoutes. Weitere Informationen zu Anfordern eines Routingtokens in der Routes Preferred API finden Sie unter Route planen

  2. Richten Sie Ihre Routinganfrage so ein, dass sie die Anforderungen für die Verwendung einer Route erfüllt. Token:

    • 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 ein. zum Speichern des Routing-Tokens. 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 mit demselben Ziel 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, gibt sie RouteStatus.OK zurück.

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

Im Folgenden sehen Sie, wie die vom Navigation SDK generierte Route und die im Routing-Token interagieren:

  • Ü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 zurückgegebene Route anpassen, werden die Routenziele verwendet, die Sie beim und fordert das Routing-Token an. Aus diesem Grund sollten Sie die gleichen wegpunktbezogene Optionen, die Sie in der Routes API angegeben haben.