Route planen

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 Routenziele:

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

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

  • Zeit bis zum Ziel minimieren: Ein Dienstleistungsunternehmen möchte die Zeit minimieren, die benötigt wird, bis die Mitarbeiter eine Arbeitsanfrage erreichen.

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

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

Vorteile von Routentokens für Routenziele

Mit einem Routentoken aus der Routes API, der Routes Preferred API oder der Route Optimization API haben Sie mehr Kontrolle über die bereitgestellte Route:

  • Route im Voraus planen , die das Navigation SDK nach Möglichkeit verwenden soll.

  • Die beste Route für das Navigation SDK auswählen. Wenn Sie beim Generieren von Routen in der Routes API Routentokens anfordern, erhalten Sie für jede generierte Route ein Routentoken. 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 abweichen, aber diese Schätzung verringert die Differenz zwischen den erwarteten und den tatsächlichen Routenkosten.

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

Funktionsweise von Routentokens

Mit der Routes API, der Routes Preferred API oder der Route Optimization API können Sie eine Route mit Routenzielen planen. Sie können ein Routentoken, das von einer dieser APIs zurückgegeben wird, an das Navigation SDK übergeben, um festzulegen, wie das Fahrzeug geroutet werden soll.

So funktioniert das Anfordern und Verwenden eines Routentokens:

  1. Die Routes API, die Routes Preferred API oder die Route Optimization API gibt 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 geänderter 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 bei den geänderten Routen immer wieder versucht, die beste Route basierend auf den Routenzielen im Token zu finden.

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

Warum eine geplante Route möglicherweise nicht genau eingehalten wird

Betrachten Sie Ihre geplante Route und Ihre Routenziele als Richtlinien, die Sie befolgen können, aber nicht müssen. Es kann eine Abweichung zwischen der geplanten Route und der Route geben, die von der geführten Navigation bereitgestellt wird. 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. Diese Abweichung kann zu einer Diskrepanz zwischen den geplanten und den tatsächlichen Zielen für Entfernung und voraussichtliche Ankunftszeit sowie anderen wichtigen Fahrtmerkmalen 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. Die einzelnen Schritte sind unten beschrieben:

Schritt 1: Routentoken mit der Routes API, der Routes Preferred API oder der Route Optimization API erstellen

  1. Routentoken anfordern mit einer der folgenden Methoden:

    • 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 Route tokens in der Route Optimization API finden Sie unter Transition Polylines und Route Tokens.

  2. Anfrage an die Routes API oder die Routes Preferred API einrichten , um die Anforderungen für die Verwendung eines Routentokens zu erfüllen:

    • travel_mode auf DRIVE oder TWO_WHEELER festlegen
    • routing_preference auf TRAFFIC_AWARE oder TRAFFIC_AWARE_OPTIMAL festlegen
    • Keine Via-Wegpunkte verwenden

Schritt 2: Routentoken an das Navigation SDK übergeben

  1. Routentoken speichern: Richten Sie im Navigation SDK einen String ein, um das Routentoken zu speichern. Beispiel:

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

    Beispiel für ein zurückgegebenes Routentoken:

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. Routentoken an das Navigation SDK übergeben : Verwenden Sie dazu die Methode Navigator.setDestinations und geben Sie dieselben Zielwegpunkte an, die Sie beim Erstellen des Routentokens 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, wird RouteStatus.OK zurückgegeben.

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

Beispiel

Das folgende Codebeispiel zeigt, wie Sie mit einem Routentoken eine geplante Route 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 zwischen 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 finden Sie unter Warum eine geplante Route möglicherweise nicht genau eingehalten wird.

  • Ignoriert die folgenden routingbezogenen Optionen, da sie nicht erforderlich sind:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • Befolgt:

    • Optionen für Wegpunkte, z. B. die Bevorzugung der 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. Verwenden Sie daher dieselben Optionen für Wegpunkte, die Sie in der Routes API angegeben haben.