FAQ
Produktdetails
- Wie sollte der Hinweis zu den Nutzungsbedingungen des Navigation SDK angezeigt werden?
- Welche Sprachen werden für die Sprachnavigation unterstützt?
- Wird der Kurs beibehalten, wenn der Fahrer den Navigationsmodus verlässt?
- Sind Polylinien beim Starten oder Ändern einer Route verfügbar?
- Müssen App-Nutzer Google Maps für Mobilgeräte installiert haben?
- Kann das Navigations-SDK Parkplätze in der Nähe von Restaurants und anderen Zielen erkennen?
- Zeigt das Navigation SDK die Verkehrsrichtung in den Fahrstreifen an, wenn sich der Fahrer einem Wendepunkt nähert?
Probleme
- In Xcode 12 werden Anwendungen nicht richtig für den Simulator erstellt. Was kann ich tun?
GMSMapView
wird nicht geladen.
Netzwerk
Daten
- Kann ich alle Haltestellen/Ziele einer Fahrt abrufen, bevor ich die Route starte?
- Ist eine detaillierte Routenführung zu Beginn einer Route verfügbar?
- Wie wird die geschätzte Ankunftszeit (ETA) den App-Nutzern mitgeteilt?
- Kann das
RoadSnappedLocationProvider
verwendet werden, um den aktuellen gesnapten Standort des Fahrers abzurufen, wenn die Navigation nicht im Vordergrund ist? - Unterstützt das Navigation SDK Geofencing?
- Kann ich Benachrichtigungen deaktivieren, wenn die Navigations-App im Hintergrund läuft?
UI-Anpassung
- Kann ich die beste Routenoption farblich codieren?
- Kann das Navigation SDK die voraussichtliche Ankunftszeit für das Ziel anzeigen?
- Wie kann ich die ETA-Updates ausblenden?
- Welche UI-Anpassungen sind für die Kopf- und Fußzeilenkarten verfügbar?
Routing
- Kann ich einem Fahrer eine bestimmte Route vorgeben oder alternative Routen entfernen?
- Kann ich dem Fahrer ein anderes Label für das Ziel als den Standardzielort anzeigen?
- Kann ich mit dem Navigation SDK Abweichungen von einem definierten Pfad verfolgen?
- Kann der Fahrer die Navigation beenden, ohne die Route zu beenden?
Simulator
Workflows
Mobilitätsdienste
- Wie unterscheidet sich die Verwendung des Navigation SDK für Kunden von Mobilitätsdiensten?
- Woher weiß ich, ob ich Mobility Services-Kunde bin?
- Wie wird das Navigation SDK für Kunden von Mobilitätsdiensten abgerechnet?
- Welche Navigations-SDK-APIs sollten nur von Mobility Services-Kunden verwendet werden?
- Kann ich als Kunde von Mobility Services auch eine andere Implementierung des Navigation SDK verwenden?
Produktdetails
- Ihre App muss ein Dialogfeld mit der Mitteilung zu den Nutzungsbedingungen des Navigations-SDK implementieren, die jeder Fahrer akzeptieren muss. In diesem Dialogfeld kann der Fahrer den Nutzungsbedingungen zustimmen. Eine Textdatei mit den Begriffen ist im Navigation SDK enthalten.
- Verwenden Sie unter Android die Methode
NavigationApi.showTermsAndConditionsDialog
, um das Dialogfeld mit den Nutzungsbedingungen aufzurufen. - Rufen Sie unter iOS
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
auf. - Alle von Google Maps Mobile unterstützten Sprachen sind automatisch für das Navigation SDK verfügbar. Ein Gerät hat eine Standardsystemsprache und eine App kann diese Einstellung nicht ändern. Die App hat jedoch Zugriff auf über 70 Sprachen.
-
Ja. Unter Android wird die
LocationListener
nach dem Starten im Hintergrund ausgeführt. Die App fügt die Position weiterhin an Straßen an und behält die Peilung bei.Wenn Sie unter iOS weiterhin Standortaktualisierungen für Position und Peilung im Hintergrund erhalten möchten, implementieren Sie das Anpinnen an Straßen und legen Sie
allowsBackgroundLocationUpdates
aufYES
fest. -
Ja. Wenn eine Route erstellt oder geändert wird, stellt
RouteChangeListener
Polylinien bereit. - Nein. Für das Navigation SDK muss Google Maps Mobile nicht auf dem Gerät installiert sein.
- Nein, das Navigation SDK bietet diese Funktion derzeit nicht.
- Ja. Die Verkehrsrichtung ist verfügbar und wird standardmäßig angezeigt.
Probleme
- In Xcode 12 werden Anwendungen nicht richtig für den Simulator erstellt. Was kann ich tun?
-
Öffnen Sie die Build-Einstellungen Ihres Xcode-Projekts und fügen Sie
arm64
unterExcluded Architectures
hinzu, allerdings nur für Builds vom Typ „iOS Simulator“.Weitere Informationen finden Sie in diesem StackOverflow-Thread.
- GMSMapView wird nicht geladen.
-
Wenn die GMSMapView nicht geladen wird:
- Prüfen Sie, ob das NavSDK in der Cloud Console aktiviert ist.
- Wenn das Nav SDK installiert ist, Ihr Projekt aber keine Nav SDK APIs verwendet, entfernen Sie es aus der Binärdatei.
Netzwerk
- Wie geht das Navigation SDK mit einer schlechten Verbindung um?
- Das Navigation SDK speichert die Route für jede Fahrt vorab im Cache. Die vorab im Cache gespeicherten Informationen umfassen Routinginformationen für 15 bis 20 Minuten und Routenalternativen für den Fall, dass der Fahrer von der Route abweicht. Das Navigations-SDK ermittelt den ungefähren Standort anhand des GPS und der Sensoren des Geräts.
- Ist ein Offlinemodus verfügbar?
- Nein, das Navigation SDK bietet derzeit keinen Offlinemodus. Das SDK stellt jedoch vorab im Cache gespeicherte Informationen für eine Fahrt bereit.
Daten
- Kann ich alle Haltestellen/Ziele einer Fahrt abrufen, bevor ich die Route starte?
-
Ja. Wenn Sie unter Android die Wegbeschreibung für eine Route abrufen möchten, rufen Sie
Navigator.getRouteSegments()
auf.Rufen Sie unter iOS
GMSNavigator.routeLegs(read)
auf. - Ist die detaillierte Routenführung am Anfang einer Route verfügbar?
- Ja. Das Navigations-SDK stellt eine Liste von Routensegmenten bereit. Außerdem kann der Fahrer durch die Navigationskarte in der Kopfzeile wischen, um sich die einzelnen Fahrmanöver anzusehen.
- Wie wird die geschätzte Ankunftszeit an die App-Nutzer gesendet?
-
So geben Sie unter Android Informationen zur geschätzten Ankunftszeit für App-Nutzer an:
- Rufen Sie mit
Navigator.getTimeAndDistanceList()
die Zeit und Entfernung für alle Wegpunkte ab. - Leiten Sie diese Informationen an die Clientanwendung weiter, wie Sie es derzeit für die voraussichtliche Ankunftszeit des Fahrers tun.
So geben Sie unter iOS Informationen zur geschätzten Ankunftszeit für App-Nutzer an:
- Rufen Sie die Strecken im Pfad mit
Navigator.getRouteSegments()
ab. - Rufen Sie
GMSNavigator.timeToNextDestination
für jede Fahrtstrecke auf. - Leiten Sie die Zeitinformationen an die Clientanwendung weiter, wie Sie es derzeit für die geschätzte Ankunftszeit des Fahrers tun.
- Rufen Sie mit
-
Kann die
RoadSnappedLocationProvider
verwendet werden, um den aktuellen gesnapten Standort des Fahrers abzurufen, wenn die Navigation nicht im Vordergrund ist? -
Ja. Unter Android wird
RoadSnappedLocationProvider
standardmäßig im Hintergrund ausgeführt.Wenn Sie die Navigation unter iOS im Hintergrund laufen lassen möchten, implementieren Sie den Listener für
GMSRoadSnappedLocationProviderListener
und legen Sie die EigenschaftallowsBackgroundLocationUpdates
aufTRUE
fest. - Unterstützt das Navigation SDK Geofencing?
-
Nein. Im Navigationskontext hat
remainingTimeOrdistanceChangeListener
einen Vorteil gegenüber einem einfachen Geofence. Der Geofence berücksichtigt möglicherweise nicht die Straßengeometrie und ist möglicherweise nicht genau auf den Punkt ausgerichtet, zu dem der Fahrer navigiert.Mit
remainingTimeOrdistanceChangeListener
können Sie diese Funktion annähernd nachbilden.- Legen Sie den Grenzwert fest, um die Häufigkeit der Rückrufe zu bestimmen.
- Prüfen Sie die verbleibende Entfernung zum Ziel.
Wenn Sie den Grenzwert beispielsweise auf 100 m festlegen, erhalten Sie einen Rückruf, wenn sich die Entfernung zum Ziel um 100 m ändert. Wenn die Entfernung abnimmt, können Sie diesen Grenzwert auf einen kleineren Wert aktualisieren und häufiger Rückrufe erhalten. Prüfen Sie dann die verbleibende Entfernung, um festzustellen, ob Sie sich nahe genug am Abhol-/Abgabeort befinden.
Implementiere unter iOS den Listener
GMSNavigatorListener.didUpdateRemainingDistance
, um den Abstand zwischen Benachrichtigungen zu verwalten. - Kann ich Benachrichtigungen deaktivieren, wenn die Navigations-App im Hintergrund läuft?
-
Ja. Unter Android kannst du Benachrichtigungen mit der Taste
Navigator.setHeadsUpNotificationEnabled
verwalten. Diese Methode hat ein boolesches Argument. MitFALSE
werden Benachrichtigungen deaktiviert, mitTRUE
aktiviert.Deaktivieren Sie unter iOS die Hintergrundbenachrichtigungen für an Straßen ausgerichtete Standorte, indem Sie
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
auf „NEIN“ setzen.Wenn Sie die Hintergrundverarbeitung für andere Standortbenachrichtigungen deaktivieren möchten, geben Sie
GMSNavigator.sendsBackgroundNotifications(NO)
ein.
UI-Anpassung
- Kann ich die beste Routenoption farblich kennzeichnen?
- Nein. Eine bestimmte Routenoption kann derzeit nicht farblich codiert werden.
- Kann das Navigation SDK die voraussichtliche Ankunftszeit für das Ziel anzeigen?
-
Ja. Unter Android haben Sie folgende Möglichkeiten:
- Rufen Sie mit
Navigator.getTimeAndDistanceList()
die Zeit und Entfernung für alle Wegpunkte ab. - Mit
NavigationFragment.setEtaCardEnabled(false)
können Sie die voraussichtliche Ankunftszeit des aktuellen Wegpunkts ausblenden. - Rendern Sie die voraussichtliche Ankunftszeit am Zielort.
Unter iOS:
- Rufen Sie einfach
GMSNavigator.routeLegs(read)
an. - Rufen Sie für die letzte Etappe
GMSNavigator.timeToNextDestination
an. - Wenn Sie die geschätzte Ankunftszeit des aktuellen Wegpunkts ausblenden möchten, geben Sie
MSMapView.settings.navigationFooterEnabled=NO
als FALSE an. - Rendern Sie die voraussichtliche Ankunftszeit am Zielort.
- Rufen Sie mit
- Wie kann ich Updates zur geschätzten Ankunftszeit ausblenden?
-
Sie können ETA-Karten mit den folgenden Methoden deaktivieren:
- Unter Android:
navigationView.setEtaCardEnabled(false)
verwenden - Unter iOS: Verwenden Sie
GMSMapView.settings.navigationFooterEnabled=NO
.
- Unter Android:
-
Unter Android verwenden Sie
StylingOptions
, um die Hintergrundfarbe festzulegen. Verwenden Sie die MitgliedsfunktionensetHeaderEnabled
undsetFooterEnabled
vonNavigationFragment
, um den Header und den Footer auszublenden oder einzublenden.Unter iOS können Sie mit
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
das Design der Hintergrundfarbe festlegen. Mit den EigenschaftennavigationFooterEnabled
undnavigationHeaderEnabled
vonGMSUISettings
können Sie Kopf- und Fußzeile ein- oder ausblenden.
Routing
- Kann ich einem Fahrer eine bestimmte Route vorgeben oder alternative Routen entfernen?
- Nein. Standardmäßig werden mehrere Routen angegeben und die schnellste Route hat Priorität. Sie können die Standardroute beeinflussen, indem Sie Ihrer Anfrage Einstellungen wie „Autobahnen und Mautstraßen vermeiden“ hinzufügen. Das Hinzufügen von Wegpunkten wirkt sich auch auf die Route aus.
- Kann ich dem App-Nutzer ein anderes Label für das Ziel als den Standardzielort anzeigen?
-
Ja. Erstellen Sie unter Android eine
Marker
mit einem benutzerdefinierten Titel für das Ziel und den Breiten-/Längengrad. Das Navigations-SDK zeigt den benutzerdefinierten Titel und die Koordinaten auf derNavigationMap
an.Unter iOS erstellen und präsentieren Sie einen
GMSMarker
für das Ziel. - Kann ich mit dem Navigation SDK Abweichungen von einem definierten Pfad erfassen?
-
Ja. Unter Android können Sie über
Navigator.setRouteChangedListener
Benachrichtigungen erhalten, wenn sich eine Route ändert oder eine neue Route empfohlen wird:- Registrieren Sie einen Listener, der die Geräteposition entlang der Route mithilfe der Methode
Navigator.setRouteChangedListener
prüft. - Fügen Sie dem Callback-Ereignishandler
onRouteChanged
Code hinzu:- Senden Sie eine Nachricht an den App-Nutzer mit aktualisierter geschätzter Ankunftszeit und Entfernungsinformationen.
- den Standort des Geräts verfolgen.
- [Optional] Fügen Sie weitere Funktionen hinzu, die von Ihrer App benötigt werden, um zu reagieren, wenn sich der Fahrer nicht auf der vorgeschriebenen Route befindet.
Unter iOS können Sie
GMSNavigator
und die zugehörigen Listener verwenden, um Benachrichtigungen zu erhalten, wenn sich eine Route ändert oder eine neue Route empfohlen wird:- Implementieren Sie im Ansichts-Controller der Karte das
GMSNavigatorListener
-Protokoll und dasGMSRoadSnappedLocationProviderListener
-Protokoll. - Implementieren Sie
GMSNavigatorListener.navigatorDidChangeRoute
. - Rufe die neue Route über die Properties
routeLegs
undcurrentRouteLeg
desGMSNavigator
auf.
- Registrieren Sie einen Listener, der die Geräteposition entlang der Route mithilfe der Methode
-
Ja. Rufen Sie unter Android die Methode
Navigator.stopGuidance()
auf, um die Navigation zu beenden.Rufen Sie unter iOS
GMSNavigator.clearDestinations
auf.
Simulator
- Unterstützt der Simulator Routenänderungen?
-
Ja. Unter Android können Sie
simulateLocationsAlongNewRoute
drücken, um eine Fahrt mit Routenänderung zu simulieren. Mit der MethodesimulateLocationsAlongExistingRoute
werden Änderungen an der vorhandenen Route ignoriert.Unter iOS können Sie mit
GMSLocationSimulator.simulateAlongNewRouteToDestinations
eine Fahrt mit Routenänderung simulieren. Wenn Sie keine Routenänderungen erwarten, können SieGMSLocationSimulator.simulateLocationsAlongExistingRoute
oderGMSLocationSimulator.simulateAlongNewRouteToDestinations
verwenden.
Workflows
- Wie kann ich die Benachrichtigung schließen, nachdem ich eine Aktivität geschlossen habe, die ein Navigationsfragment enthält?
-
Die Navigationsbenachrichtigung bleibt während der Navigation sichtbar, wenn die Aktivität geschlossen ist. Wenn das Fahrzeug am Ziel ankommt, wird die Navigation beendet und die Benachrichtigung verschwindet.
Verwenden Sie die
Navigator.startGuidance(intent resumeIntent)
, um Klicks auf die Benachrichtigung zu verarbeiten.resume intent
wird ausgelöst, wenn der App-Nutzer auf die Benachrichtigung klickt. Normalerweise wirdNavigator.startguidance(getIntent())
von der Hauptaktivität aufgerufen, die die Aktivität aufruft, wenn der App-Nutzer auf die Benachrichtigung klickt.
Mobilitätsdienste
Die Mobilitätsdienste der Google Maps Platform bieten eine Reihe von APIs und SDKs, die die Anforderungen von Unternehmen aus der Transport- und Logistikbranche unterstützen. Kunden von Mobilitätsdiensten verwenden das Navigation SDK in der Regel in Verbindung mit ähnlichen Diensten für Routenoptimierung, Dispatch, Aufgaben-Tracking, Flottenanalysen und mehr. Das Navigation SDK wird für Kunden von Mobilitätsdiensten auch anders abgerechnet. Weitere Informationen finden Sie in der Dokumentation zu Mobility Services.
Mobilitätsprodukte sind derzeit nur für ausgewählte Kunden verfügbar. Weitere Informationen erhalten Sie von Ihrem Vertriebsmitarbeiter.
ReportBillableEvent
-Aufruf. Nur Kunden von Mobility Services sollten die Methode ReportBillableEvent
aufrufen.
Es gibt mehrere APIs im Navigation SDK, die nur für Kunden von Mobility Services bestimmt sind. Diese Kunden werden von Google pro Transaktion in Rechnung gestellt. Wenn Sie kein Kunde von Mobility Services sind, sind die folgenden Methoden nicht verfügbar:
Ja, Kunden von Mobilitätsdiensten können sowohl Mobilitätsdienste als auch Implementierungen des Navigations-SDKs verwenden, die nicht zu Mobilitätsdiensten gehören. Sie können jedoch jeweils nur einen Implementierungstyp in einer App verwenden. Außerdem müssen Sie ein neues Google Cloud-Projekt, ein neues Rechnungskonto und einen neuen API-Schlüssel erstellen, die nicht mit denen identisch sind, die Sie für Ihre Mobility Services-Implementierung verwenden. Weitere Informationen finden Sie in der Einrichtungsanleitung für das Navigation SDK.
Weitere Informationen zur Verwendung einer Implementierung des Navigation SDK, die nicht auf Mobilitätsdiensten basiert, und zur Migration einer App von einem Implementierungstyp zum anderen erhalten Sie von Ihrem Google-Kundenbetreuer.
Hinweis: Wenn Sie derzeit kein Kunde von Mobility Services sind und mehr über die APIs und SDKs von Mobility Services erfahren möchten, wenden Sie sich an den Google Maps Platform-Vertrieb.