Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Manchmal möchten Sie die Route planen, die Ihre App Nutzern zur Verfügung stellt. Mit einem Routentoken aus der Routes API, der Routes Preferred API oder der 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 Routing-Zielvorhaben:
Lieferzeit minimieren: Ein Unternehmen, das Lebensmittel liefert, möchte möglicherweise die Lieferzeit minimieren.
Reisezeit 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 Serviceeinsatz soll die Zeit, die benötigt wird, um Bediener zu einer Jobanfrage zu bringen, möglicherweise minimiert werden.
Kosten senken und Sicherheit verbessern: Ein Fahrdienst möchte möglicherweise eine Route finden, die für Fahrgäste weniger kostet und aus Sicherheitsgründen bestimmte Gebiete meidet.
Mit einem Routen-Token aus der Routes API, der Routes Preferred API oder der Route Optimization API haben Sie mehr Kontrolle über die bereitgestellte Route:
Planen Sie eine Route im Voraus, damit das Navigation SDK sie bei Bedarf verwenden kann.
Die beste Route für das Navigation SDK auswählen Wenn Sie beim Generieren von Routen in der Routes API Routen-Tokens anfordern, erhalten Sie für jede generierte Route ein Routen-Token. 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 Diskrepanz zwischen den erwarteten und den tatsächlichen Routenkosten.
Erweiterte Routenziele angeben, z. B. verbrauchsarme Routen oder die kürzeste Route.
Funktionsweise von Routen-Tokens
Mit der Routes API, der Routes Preferred API oder der Route Optimization API können Sie eine Route anhand von Routenzielen planen. Sie können ein Routen-Token, das von einer dieser APIs zurückgegeben wird, an das Navigation SDK übergeben, um die Routenführung für Ihr Fahrzeug zu steuern.
So funktioniert das Anfordern und Verwenden eines Routentokens:
Die Routes API, die Routes Preferred API oder die Route Optimization API geben ein verschlüsseltes Routentoken zurück, das die Routen-Polylinie und die Routenziele enthält.
Sie übergeben das Routen-Token an das Navigation SDK.
Das Navigation SDK ruft die Route ab. Wenn die Route aufgrund sich ändernder Bedingungen nicht verfügbar ist, wird die am besten passende Route abgerufen.
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 fortlaufend an die beste Route angepasst, die auf den Routenzielen im Token basiert.
So wird sichergestellt, dass die tatsächliche Route möglichst genau der geplanten Route entspricht.
Warum eine geplante Route möglicherweise nicht genau eingehalten wird
Betrachten Sie Ihre geplante Route und die Routenziele als Richtlinien, die Sie befolgen können, aber nicht müssen. Es kann sein, dass sich Ihre geplante Route von der Route der Sprachnavigation unterscheidet. 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. Dieser Unterschied kann zu einer Abweichung zwischen Ihren geplanten und tatsächlichen Zielen für Entfernung und voraussichtliche Ankunftszeit sowie anderen wichtigen Reisequalitäten führen.
Route mit einem Routen-Token planen
Sie können eine Route planen, indem Sie ein Routentoken erstellen und es dann an das Navigation SDK übergeben. Gehen Sie dazu so vor:
Schritt 1: Routen-Token mit der Routes API, Routes Preferred API oder Route Optimization API erstellen
Fordern Sie ein Routen-Token mit einer der folgenden Methoden 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.
Route Optimization API: optimizeTours oder
batchOptimizeTours. Weitere Informationen zum Anfordern eines Routen-Tokens in der Route Optimization API finden Sie unter Übergangspolylinien und Routen-Tokens.
Richten Sie Ihre Anfrage für die Routes API oder die Routes Preferred API ein, um die Anforderungen für die Verwendung eines Routentokens zu erfüllen:
Legen Sie travel_mode auf DRIVING oder TWO_WHEELER fest.
Legen Sie routing_preference auf TRAFFIC_AWARE oder TRAFFIC_AWARE_OPTIMAL fest.
KEINE Via Wegpunkte verwenden
Schritt 2: Routentoken an das Navigation SDK übergeben
Routentoken speichern: Richten Sie im Navigation SDK einen String zum Speichern des Routentokens ein. Beispiel:
letrouteToken="route token returned by Routes API"
Beispiel für ein zurückgegebenes Routentoken:
{// Other fields"routeToken":"CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",}
Übergeben Sie das Routentoken mit der Methode mapView.navigator setDestinations an das Navigation SDK und geben Sie dieselben Ziel-Waypoints an, die Sie beim Erstellen des Routentokens verwendet haben:
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.
Die folgenden Codebeispiele zeigen, wie Sie eine geplante Route abrufen.
Swift
letlocation=CLLocationCoordinate2D(latitude:47.67,longitude:-122.20)letwaypoint1=GMSNavigationWaypoint(location:location,title:"waypoint from location")!letwaypoint2=GMSNavigationWaypoint(placeID:"samplePlaceID",title:"waypoint from Place ID")!letrouteToken="route token returned by Routes API"mapView.navigator?.setDestinations([waypoint1,waypoint2],routeToken:routeToken,callback:{...})
Objective-C
CLLocationCoordinate2Dlocation=CLLocationCoordinate2DMake(47.67,-122.20);GMSNavigationWaypoint*waypoint1=[[GMSNavigationWaypointalloc]initWithLocation:coordinatetitle:@"waypoint from location"];GMSNavigationWaypoint*waypoint2=[[GMSNavigationWaypointalloc]initWithPlaceID:@"samplePlaceID"title:@"waypoint from Place ID"];NSString*routeToken=@"route token returned by Routes API";[mapView.navigatorsetDestinations:@[waypoint1,waypoint2]routeToken:routeTokencallback:^(GMSRouteStatusrouteStatus){...}];
Interaktion von Routentokens und dem Navigation SDK
So interagieren die vom Navigation SDK generierte Route und die geplante Route im Routen-Token:
Ignoriert die folgenden routingbezogenen Optionen, da sie nicht benötigt werden:
avoidsHighways
avoidsTolls
avoidsFerries
licensePlateRestriction
Mit „Folgen“ markiert:
Wegpunktbezogene Optionen, z. B. die bevorzugte 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 Optionen für Wegpunkte verwenden, die Sie in der Routes API angegeben haben.
[null,null,["Zuletzt aktualisiert: 2025-09-04 (UTC)."],[[["\u003cp\u003eRoute tokens let you plan routes in advance, optimizing for factors like time, fuel, or safety, and can be generated using the Routes, Routes Preferred, or Route Optimization API.\u003c/p\u003e\n"],["\u003cp\u003eWhile the Navigation SDK attempts to follow the planned route, real-world conditions may cause deviations; it dynamically adjusts while prioritizing the specified route objectives.\u003c/p\u003e\n"],["\u003cp\u003eYou create a route token via the Routes, Routes Preferred, or Route Optimization API, then pass it to the Navigation SDK's \u003ccode\u003esetDestinations\u003c/code\u003e method alongside your waypoints.\u003c/p\u003e\n"],["\u003cp\u003eThe Navigation SDK prioritizes the route token's plan but dynamically adapts to real-time conditions, potentially leading to variations between the planned and actual route.\u003c/p\u003e\n"],["\u003cp\u003eAlways request a fresh route token for each trip and anticipate potential route adjustments to ensure smooth navigation and accurate estimations.\u003c/p\u003e\n"]]],[],null,["# Plan a route\n\nAt times, you might want to plan the route your app provides to users. Using a\nroute token from the Routes API,\nRoutes Preferred API, or Route Optimization API can\nhelp you specify two things for your planned route:\n\n- A polyline for the route\n\n- Your route objectives\n\nFor example, here are some examples of routing objectives you may have:\n\n- **Minimize time to delivery**: A business delivering food might want to\n minimize the time it takes to deliver the food.\n\n- **Minimize travel time or fuel consumption**: A logistics business might\n want to improve the efficiency of their drivers and reduce their fuel costs.\n\n- **Minimize time to destination**: A service dispatch operation might want to\n minimize the time it takes to get operators to a job request.\n\n- **Lower costs and improve safety**: A ride-sharing business might want to\n find a route that costs less for riders and avoids certain areas for safety\n reasons.\n\n| **Important:** The actual route traveled may vary from the planned route provided by the token. Changing traffic, road conditions, or the vehicle deviating from the given route can result in route changes. As changes occur, the Navigation SDK continually attempts to return to the planned route, or if returning is impractical, follows the route objectives in the route token.\n\nFor more information about planning a route using a route token, see [Request a\nroute token](/maps/documentation/routes/choose_fields#route-token) in\nRoutes API and [Transition Polylines and Route\nTokens](/maps/documentation/route-optimization/polylines-and-route-tokens) in\nRoute Optimization API.\n\nWhy use a route token for route objectives\n------------------------------------------\n\nWith a route token from the Routes API,\nRoutes Preferred API, or Route Optimization API, you\nhave more control over the route provided:\n\n- **Plan a route in advance** for the Navigation SDK to use when\n possible.\n\n- **Choose the best route for the Navigation SDK to use**. If you\n request route tokens when generating routes in the Routes API,\n you get a route token for each generated route. You can then choose the\n token for the route you want to use when you pass it to the\n Navigation SDK.\n\n- **Estimate the price in advance**, including estimations for ETA and\n distance. While the actual cost and time might vary, this estimation reduces\n the gap between expected and actual route cost.\n\n- **Specify more advanced route objectives**, such as eco routing or the\n shortest route.\n\n| **Tip:** A route token is for one specific origin and destination and at a particular time. You must make a new Routes API, Routes Preferred API, or Route Optimization API request for a new route token.\n\nHow route tokens work\n---------------------\n\nYou can use the Routes API, Routes Preferred API, or\nRoute Optimization API to plan a route using route objectives. You\ncan pass a route token returned from any of these APIs to the\nNavigation SDK to guide how it routes your vehicle.\n\nHere's what happens when you request and use a route token:\n\n1. The Routes API, Routes Preferred API, or\n Route Optimization API returns an encrypted route token that\n includes the route polyline and route objectives.\n\n2. You pass the route token to the Navigation SDK.\n\n3. The Navigation SDK retrieves the route, or if the route is not\n available due to changing conditions, it retrieves the best matching route.\n\n4. While driving the route, if traffic or other road conditions change, or if a\n vehicle deviates from the planned route, the modified routes continually\n attempt to match the best route based on the route objectives in the token.\n\nThis process maximizes how close the actual route is to your planned route.\n\n### Why a planned route may not be followed exactly\n\nThink of your planned route and route objectives as guidelines to follow: they\nare not prescriptive. You might see a difference between your planned route and\nthe route provided by guided navigation due to differences in the road\nconditions, starting location, or other parameters that have changed since you\ncreated the planned route. This difference might result in a mismatch between\nyour planned and actual goals for distance and ETA, among other important trip\nqualities.\n| **Tip:** As a best practice, always request a new route token every time you set the destination in the Navigation SDK, and plan for some variation to avoid any impact to your business.\n\nPlan a route using a route token\n--------------------------------\n\nYou can plan a route by creating a route token and then passing it to the\nNavigation SDK, as described in the following steps:\n\n### Step 1: Create a route token using the Routes API, Routes Preferred API, or Route Optimization API\n\n1. **Request a route token** with one of the following methods:\n\n - **Routes API** : `computeRoutes`. For more information\n about requesting a route token in the Routes API, see\n [Compute a route](/maps/documentation/routes/compute_route_directions)\n and [Request a route\n token](/maps/documentation/routes/choose_fields#route-token).\n\n - **Routes Preferred API** : `computeCustomRoutes`. For more\n information about requesting a route token in the\n Routes Preferred API, see [Plan a\n route](/maps/documentation/routes_preferred/custom_routes).\n\n - **Route Optimization API** : `optimizeTours` or\n `batchOptimizeTours`. For more information about requesting a route\n token in the Route Optimization API, see [Transition Polylines and Route\n Tokens](/maps/documentation/route-optimization/polylines-and-route-tokens).\n\n2. **Set up your Routes API or Routes Preferred API\n request** to meet the requirements for using a route token:\n\n - Set `travel_mode` to `DRIVING` or `TWO_WHEELER`\n - Set `routing_preference` to `TRAFFIC_AWARE` or `TRAFFIC_AWARE_OPTIMAL`\n - Do NOT use `Via` waypoints\n\n### Step 2: Pass the route token to the Navigation SDK\n\n1. **Store the route token**: In the Navigation SDK, set up a string\n to store the route token. For example:\n\n let routeToken = \"route token returned by Routes API\"\n\n Example of a returned route token: \n\n {\n // Other fields\n \"routeToken\": \"CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g\",\n }\n\n2. **Pass the route token** to the Navigation SDK using the\n `mapView.navigator setDestinations` method, specifying the same destination\n waypoints that you used when creating the route token:\n\n mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})\n\n| **Note:** If you need to travel the same route again, request a new route token.\n\nThe `Navigator.setDestinations` method returns the status of the request.\nIf a route is found from the user's location to the given destination,\nit returns`RouteStatus.OK`.\n\nFor more information about this method, see\n[`GMSNavigator.setDestinations`](/maps/documentation/navigation/ios-sdk/reference/objc/Classes/GMSNavigator#-setdestinations:callback:).\n\n### Example\n\nThe following code examples demonstrate how to retrieve a planned route.\n\n\u003cbr /\u003e\n\n### Swift\n\n\u003cbr /\u003e\n\n let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)\n let waypoint1 = GMSNavigationWaypoint(location: location, title: \"waypoint from location\")!\n let waypoint2 = GMSNavigationWaypoint(placeID: \"samplePlaceID\", title: \"waypoint from Place ID\")!\n\n let routeToken = \"route token returned by Routes API\"\n mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})\n\n\u003cbr /\u003e\n\n### Objective-C\n\n\u003cbr /\u003e\n\n CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);\n GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:coordinate title:@\"waypoint from location\"];\n GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@\"samplePlaceID\"\n title:@\"waypoint from Place ID\"];\n NSString *routeToken = @\"route token returned by Routes API\";\n\n [mapView.navigator setDestinations:@[waypoint1, waypoint2]\n routeToken:routeToken\n callback:^(GMSRouteStatus routeStatus){...}];\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nHow route tokens and the Navigation SDK interact\n------------------------------------------------\n\nHere's how the route generated by the Navigation SDK and the planned\nroute in the route token interact:\n\n- **Overrides** any previously-set destinations.\n\n- **Uses** the vehicle starting location.\n\n- **Adjusts** for road and traffic conditions. See\n [Why a planned route might not be followed exactly](#not-followed).\n\n- **Ignores** the following routing-related options as unneeded:\n\n - `avoidsHighways`\n - `avoidsTolls`\n - `avoidsFerries`\n - `licensePlateRestriction`\n- **Follows**:\n\n - **Waypoint-related options**, such as the side-of-road preference.\n\n - **Route objectives**. If the Navigation SDK has to\n adjust the returned route, it uses the route objectives you specified when\n requesting the route token. For this reason, you should use the same\n waypoint-related options that you specified in Routes API."]]