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
routeRestrictionsPartiallyIgnoreddeutlich 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 |
Gelb = Warnung, Ihr Fahrzeug ist fast so hoch wie die maximal zulässige Höhe.
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 rote Sprechblase wird angezeigt, wenn die Route nicht den Vorschriften entspricht und eine Höhenbeschränkung verletzt.
|
| Gewicht |
|
Wenn das Gewicht des Fahrzeugs das Limit der Straße überschreitet, wird eine rote Sprechblase angezeigt.
|
| Lkw-Verbot |
|
Wenn Sie auf einem Straßenabschnitt mit einer LKW-Beschränkung unterwegs sind, wird ein roter Hinweis eingeblendet.
|
| Gefährliche Güter |
|
Wenn die Gefahrgutladung des Fahrzeugs auf einem Straßenabschnitt verboten ist, wird ein roter Hinweis eingeblendet.
|
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:
- Ihr Backend fordert eine Lkw-Route von der Routes API an.
- Die Routes API gibt ein
routeTokenzurück. - Ihr Backend sendet dieses Token an Ihre mobile Anwendung.
- Die mobile App übergibt die
routeTokenan das Navigation SDK, um die Fahrt zu starten. - 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
- SDKs ansehen:Navigation SDK for Android | Navigation SDK for iOS
- UI anpassen:Informationen zum Anpassen der Navigation SDK-UI