Detaillierte Routenführung für große Fahrzeuge anbieten

Für wen ist dieser Leitfaden? Dieser Leitfaden richtet sich an mobile Entwickler, die für die Entwicklung der Navigation in der Fahrerkabine für Fahrer von Lkw oder anderen großen Fahrzeugen verantwortlich sind.

Inhalt dieser Anleitung:In dieser Anleitung wird beschrieben, wie Sie eine lkw-spezifische Route, die von der Routes API oder der Route Optimization API generiert wurde, verwenden, um eine Turn-by-Turn-Navigation mit dem Navigation SDK zu ermöglichen.

Lerninhalte

Sie lernen, wie Sie Folgendes tun:

  • Verwenden Sie eine routeToken, um die Routenplanung im Backend mit der In-App-Navigation zu verbinden.
  • Konfigurieren Sie das Navigation SDK für die Verwendung einer vorgeplanten Lkw-Route.
  • Informationen zur Darstellung von Lkw-spezifischen Einschränkungen für den Fahrer in der Benutzeroberfläche

Vorbereitung

Bevor Sie beginnen, müssen die folgenden Voraussetzungen erfüllt sein.

Projekt einrichten

Ihr Google Cloud-Projekt muss für Large Vehicle Routing bereitgestellt werden. Wenn Sie separate Projekte für die Routes API und das Navigation SDK verwenden, müssen beide entsprechend bereitgestellt werden.

Routentoken generieren

Sie müssen zuerst eine Route generieren. Folgen Sie dazu der Anleitung im Leitfaden Lkw-Routen und geschätzte Ankunftszeiten generieren. Die Ausgabe dieses Prozesses, eine routeToken, ist erforderlich, um die Schritte in diesem Leitfaden auszuführen.

Mindestanforderungen

Ihre App muss die erforderliche Mindestversion des Navigation SDK verwenden:

  • Android:5.2.0 oder höher
  • iOS:5.4.0 oder höher

Außerdem gelten alle Anforderungen für die Verwendung des Navigation SDK:

Beschränkungen

Bevor Sie beginnen, sollten Sie sich mit den folgenden Einschränkungen und Anforderungen vertraut machen.

  • Geografische Verfügbarkeit: Die Routenplanung für große Fahrzeuge ist nur in den 48 zusammenhängenden US-Bundesstaaten verfügbar.
  • Die Routenplanung für große Fahrzeuge ist ein Angebot in der Vorschauphase. Fahrer dürfen sich nicht ausschließlich auf die von dieser API zurückgegebenen Routen verlassen, um sicher oder legal zu fahren. Es wird nicht garantiert, dass die Routen für das Fahrzeug geeignet sind. Wenn Fahrer ihnen folgen, können sie Gefahren wie niedrigen Brücken oder Straßen ausgesetzt sein, auf denen große Fahrzeuge verboten sind.
  • Best-Effort-Routen: In einigen Fällen kann die API keine Route finden, die vollständig den Reisebeschränkungen entspricht. Stattdessen wird eine „Best-Effort“-Route zurückgegeben, die möglicherweise durch Sperrzonen führt. In der Antwort der Routes API werden diese Routen im Feld routeRestrictionsPartiallyIgnored deutlich gekennzeichnet. Planen Sie Ihre Route in diesen Fällen sorgfältig, idealerweise mit anderen Quelldaten. Verwenden Sie eine markierte Route nicht als einzige Informationsquelle für die Planung oder Navigation.
  • Nicht unterstützte Funktionen: Wir arbeiten daran, weitere Funktionen in dieses Angebot aufzunehmen. Die Routenplanung für große Fahrzeuge unterstützt jedoch Folgendes nicht:
    • Lkw-Mautpreise
    • Höchstgeschwindigkeit
    • Routen für radioaktive Gefahrstoffe
  • Nutzungslimits:Für alle Anfragen gelten die standardmäßigen Grenzwerte für Abfragen pro Sekunde (QPS).

Lkw-spezifische Benutzeroberfläche anzeigen

Das Navigation SDK zeigt automatisch visuelle Warnungen auf der Karte an, sogenannte Routen-Callouts, um Fahrer vor bevorstehenden Lkw-Beschränkungen zu warnen. Hinweise werden für Einschränkungen gerendert, die Teil der geplanten Route sind, aber nicht für andere Straßen in der Nähe.

Das SDK enthält Hinweise zu den folgenden Einschränkungen:

Einschränkung Symbol und Text der Erweiterung mit Zusatzinformationen Bedingungen für die Anzeige
Höhe Ein gelbes Symbol für Höhenbeschränkungen
Gelb = Warnung, Ihr Fahrzeug ist fast so hoch wie die maximal zulässige Höhe.
Ein rotes Symbol für Höhenbeschränkung
Rot = Ihr Fahrzeug ist höher als die maximal zulässige Höhe.
Eine gelbe Sprechblase wird angezeigt, wenn die Höhe des Fahrzeugs nahe an der Beschränkung liegt.
Eine Karte mit einer Warnung zur Höhenbeschränkung
Eine rote Sprechblase wird angezeigt, wenn die Route nicht den Vorschriften entspricht und eine Höhenbeschränkung verletzt.
Eine Karte mit einem Verstoß gegen die Höhenbeschränkung
Gewicht Symbol für Gewichtsbeschränkung Wenn das Gewicht des Fahrzeugs das Limit der Straße überschreitet, wird eine rote Sprechblase angezeigt.
Eine Karte mit einem Symbol für Gewichtsbeschränkungen
Lkw-Verbot Symbol für „Lkw-Verbot“ Wenn Sie auf einem Straßenabschnitt mit einer LKW-Beschränkung unterwegs sind, wird ein roter Hinweis eingeblendet.
Eine Karte mit einem Symbol für „Lkw verboten“
Gefährliche Güter Ein Gefahrgutsymbol Wenn die Gefahrgutladung des Fahrzeugs auf einem Straßenabschnitt verboten ist, wird ein roter Hinweis eingeblendet.
Eine Karte mit einem Gefahrgutsymbol

Workflow für das Weiterleitungstoken

Ein routeToken ist ein verschlüsselter, sicherer Snapshot einer Route, die von der Routes API generiert wird. Sie enthält alle Routendetails, einschließlich des Fahrzeugprofils, das zum Erstellen der Route verwendet wurde. Durch die Verwendung eines Tokens wird sichergestellt, dass die Navigationssitzung mit der Route übereinstimmt, die Sie in Ihrem Backend geplant haben.

Sobald der Fahrer mit der Navigation beginnt, kann sich die vom Navigation SDK angezeigte Route je nach Verkehrs- und Straßenbedingungen ändern. In einigen Fällen kann sie von der Route abweichen, die durch das Routen-Token angegeben wird.

In diesen Fällen sowie in dem Fall, in dem der Fahrer von der geplanten Route abweicht, wird durch die Verwendung des Routentokens sichergestellt, dass neu berechnete Routen die in der ursprünglichen Routes API-Anfrage konfigurierten Fahrzeugattribute berücksichtigen.

Der Workflow umfasst die folgenden Schritte:

  1. Ihr Backend fordert eine Lkw-Route von der Routes API an.
  2. Die Routes API gibt ein routeToken zurück.
  3. Ihr Backend sendet dieses Token an Ihre mobile Anwendung.
  4. Die mobile App übergibt die routeToken an das Navigation SDK, um die Fahrt zu starten.
  5. Das Navigation SDK übernimmt alle Aspekte der Turn-by-Turn-Navigation, einschließlich der Umleitung, wenn der Fahrer vom Weg abweicht, wobei die ursprünglichen Fahrzeugbeschränkungen beibehalten werden.

Implementierung: Lkw-spezifische Fahrt starten

Wenn Sie eine Navigationssitzung mit Ihrer Lkw-Route starten möchten, übergeben Sie das Routentoken an den Navigator.

Schritt 1: Routentoken abrufen

Ihre Anwendung empfängt den String routeToken von Ihrem Backend-Server.

Der folgende Code ist ein Beispiel für ein Token:

CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g

Schritt 2: Token an den Navigator übergeben

Geben Sie routeToken für den Navigator an, wenn Sie das Reiseziel festlegen. Das Navigation SDK verwendet dieses Token dann für alle Routenberechnungen für die Fahrt.

Das Navigation SDK hat eine TravelMode-Konfiguration, die auf TravelMode.DRIVING festgelegt werden muss. Dies ist unabhängig von der travelMode-Konfiguration in der Routes API, die auf TRUCK festgelegt werden muss. Die Konfiguration der Routes API travelMode ist in routeToken codiert und signalisiert dem Navigation SDK, dass die Lkw-spezifische Benutzeroberfläche und Route angezeigt werden sollen.

Android

Verwenden Sie CustomRoutesOptions.builder(), um das Token festzulegen, und übergeben Sie es dann an navigator.setDestinations().

// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"

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

// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
    .setLatLng(10.0, 20.0)
    .setTitle("title")
    .setVehicleStopover(true)
    .build()
destinations.add(destination);

navigator.setDestinations(destinations, customRoutesOptions)

iOS

Übergeben Sie das Routentoken mit der Methode mapView.navigator setDestinations an das Navigation SDK und geben Sie dabei dieselben Ziel-Waypoints an, die Sie beim Erstellen des Routentokens verwendet haben:

// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"

mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})

Nächste Schritte