Route planen

Manchmal möchten Sie die Route planen, die Ihre App Nutzern zur Verfügung stellt. Mit einem Routen-Token aus der Routes API, der Routes Preferred API oder der Route Optimization API können Sie zwei Dinge für Ihre geplante Route festlegen:

  • Eine Polylinie für die Route

  • Ihre Routenziele

Hier sind einige Beispiele für Routing-Ziele:

  • 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 Zielort minimieren: Bei einem Einsatz von Servicetechnikern kann es sinnvoll sein, die Zeit zu minimieren, die benötigt wird, um die Techniker zu einem Job zu bringen.

  • Kosten senken und Sicherheit verbessern: Ein Fahrdienstunternehmen möchte möglicherweise eine Route finden, die für Fahrgäste weniger kostet und aus Sicherheitsgründen bestimmte Gebiete meidet.

Weitere Informationen zum Planen einer Route mit einem Routentoken finden Sie unter Routentoken anfordern in der Routes API und Polylinien und Routentokens umstellen in der Route Optimization API.

Warum ein Routentoken für Routenziele verwenden?

Mit einem Routentoken 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 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 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 Differenz zwischen den erwarteten und den tatsächlichen Routenkosten.

  • Erweiterte Routenziele angeben, z. B. verbrauchsarme Routen oder die kürzeste Route.

Funktionsweise von Routentokens

Sie können die Routes API, die Routes Preferred API oder die Route Optimization API verwenden, um eine Route mit Routenzielen zu 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 Routen-Tokens:

  1. Die Routes API, die Routes Preferred API oder die Route Optimization API geben ein verschlüsseltes Routentoken zurück, das die Routenpolylinie und die Routenziele enthält.

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

  3. 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.

  4. Wenn sich während der Fahrt die Verkehrs- oder Straßenverhältnisse ändern oder ein Fahrzeug von der geplanten Route abweicht, wird die beste Route basierend auf den Routenzielen im Token kontinuierlich neu berechnet.

So wird sichergestellt, dass die tatsächliche Route möglichst nah an der geplanten Route liegt.

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. Die geplante Route kann sich von der Route der Navigationsanleitung unterscheiden. Das liegt daran, dass sich die Straßenbedingungen, der Startort oder andere Parameter seit dem Erstellen der geplanten Route geändert haben können. 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 Routentoken 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: Routentoken mit der Routes API, Routes Preferred API oder Route Optimization API erstellen

  1. Fordern Sie ein Routen-Token mit einer der folgenden Methoden an:

    • Routes API: computeRoutes. Weitere Informationen zum Anfordern eines Routen-Tokens in der Routes API finden Sie unter Route berechnen und Routen-Token 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 Routentokens in der Route Optimization API finden Sie unter Übergang von Polylinien zu Routentokens.

  2. Richten Sie Ihre Routes API- oder Routes Preferred API-Anfrage so ein, dass sie die Anforderungen für die Verwendung eines Routentokens erfüllt:

    • Legen Sie travel_mode auf DRIVE oder TWO_WHEELER fest.
    • Legen Sie routing_preference auf TRAFFIC_AWARE oder TRAFFIC_AWARE_OPTIMAL fest.
    • Via-Wegpunkte NICHT 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:

    String routeToken = "route token returned by Routes API";

    Beispiel für ein zurückgegebenes Routen-Token:

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. Übergeben Sie das Routen-Token mit der Methode Navigator.setDestinations an das Navigation SDK und geben Sie dieselben Ziel-Waypoints an, die Sie beim Erstellen des Routen-Tokens verwendet haben:

    setDestinations(List destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions);

    Beispiel:

    CustomRoutesOptions customRoutesOptions =
          CustomRoutesOptions.builder()
          .setRouteToken(routeToken)
          .setTravelMode(TravelMode.DRIVING)
          .build();

Die Methode Navigator.setDestinations gibt den Status der Anfrage zurück. Wenn eine Route vom Standort des Fahrzeugs zum angegebenen Ziel gefunden wird, wirdRouteStatus.OKzurückgegeben.

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

Beispiel

Das folgende Codebeispiel zeigt, wie Sie eine geplante Route mit einem Routentoken angeben.

    ArrayList <Waypoint> destinations = Lists.newArrayList();
    Waypoint waypoint1 =
       Waypoint.builder()
          .setLatLng(10, 20)
          .setTitle("title")
          .setVehicleStopover(true)
          .build();
    destinations.add(waypoint1);
    Waypoint waypoint2 =
       Waypoint.builder()
          .setPlaceId("ChIJYV-J-ziuEmsRIMyoFaMedU4")
          .setTitle("title")
          .setVehicleStopover(true)
           .build()
    destinations.add(waypoint2);

    String routeToken = "route token returned by Routes API";

    CustomRoutesOptions customRoutesOptions =
       CustomRoutesOptions.builder()
          .setRouteToken(routeToken)
          .setTravelMode(TravelMode.DRIVING)
          .build();

    // Existing flow to get a Navigator.
    NavigationApi.getNavigator(...);

    // Existing flow for requesting routes.
    ListenableResultFuture<RouteStatus> routeStatusFuture =
        navigator.setDestinations(destinations, customRoutesOptions);

    // Or with display options.
    DisplayOptions displayOptions = new DisplayOptions();

    ListenableResultFuture<RouteStatus> routeStatusFuture =
        navigator.setDestinations(destinations, customRoutesOptions, displayOptions);

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.

  • Verwendet den Startort des Fahrzeugs.

  • Passt sich an Straßen- und Verkehrslage an. Weitere Informationen

  • Ignoriert die folgenden routingbezogenen Optionen, da sie nicht benötigt werden:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • Folgt:

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