Von Zeit zu Zeit kann es von Vorteil sein, die Route zu planen, die Ihre App den Nutzern bereitstellt. Mit einer 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.
Fahrtzeit 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.
Legen Sie erweiterte Routenziele fest, 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:
Die Routes API gibt ein verschlüsseltes Routentoken zurück, das die Route enthält. Polylinien und Routenziele.
Sie übergeben das Routentoken an das Navigation SDK.
Das Navigation SDK ruft die Route ab. Bedingungen verfügbar sind, werden die besten Übereinstimmungen Route.
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 kontinuierlich 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
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 anfordernRoutes Preferred API:
computeCustomRoutes
. Weitere Informationen zu Anfordern eines Routingtokens in der Routes Preferred API finden Sie unter Route planen
Richten Sie Ihre Routinganfrage so ein, dass sie die Anforderungen für die Verwendung einer Route erfüllt. Token:
- Setzen Sie
travel_mode
aufDRIVING
. - Setzen Sie
routing_preference
aufTRAFFIC_AWARE
oderTRAFFIC_AWARE_OPTIMAL
. - KEINE Via-Wegpunkte verwenden
- Setzen Sie
Schritt 2: Routentoken an das Navigation SDK übergeben
Routentoken speichern: Richten Sie im Navigation SDK einen String ein. zum Speichern des Routentokens. 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 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.