FAQ
Produktdetails
- Wie muss der Hinweis zu den Nutzungsbedingungen des Navigation SDK angezeigt werden?
- Welche Sprachen werden von der Sprachführung unterstützt?
- Wird die Ausrichtung beibehalten, wenn der Fahrer den Navigationsmodus verlässt?
- Sind Polylinien verfügbar, wenn ich eine Route starte oder ändere?
- Müssen App-Nutzer Google Maps Mobile installiert haben?
- Kann das Navigation SDK Parkplätze in der Nähe von Restaurants und anderen Zielen finden?
- Wird im Navigation SDK die Verkehrsrichtung auf den Fahrspuren angezeigt, wenn sich ein Wendepunkt nähert?
Probleme
- In Xcode 12 werden Apps nicht richtig für den Simulator erstellt. Was kann ich tun?
GMSMapView
wird nicht geladen.
Netzwerk
Daten
- Kann ich alle Zwischenstopps/Ziele einer Fahrt abrufen, bevor ich die Route starte?
- Ist die detaillierte Routenführung am Start einer Route verfügbar?
- Wie wird die geschätzte Ankunftszeit (Estimated Time of Arrival, ETA) den App-Nutzern mitgeteilt?
- Kann die
RoadSnappedLocationProvider
verwendet werden, um den aktuellen Standort des Fahrers zu ermitteln, 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 kennzeichnen?
- Kann im Navigation SDK die voraussichtliche Ankunftszeit für das Ziel angezeigt werden?
- Wie kann ich die ETA-Updates ausblenden?
- Welche UI-Anpassungen sind für die Kopf- und Fußzeilenkarten verfügbar?
Routing
- Kann ich dem 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 das Navigation SDK verwenden, um Abweichungen von einem definierten Pfad zu erfassen?
- Kann der Fahrer die Navigation beenden, ohne die Route abzuschließen?
Simulator
Workflows
Mobilitätsdienste
- Wie unterscheidet sich die Verwendung des Navigation SDK für Kunden von Mobilitätsdiensten?
- Woher weiß ich, ob ich ein Mobility Services-Kunde bin?
- Wie wird das Navigation SDK für Kunden mit Mobilitätsdiensten abgerechnet?
- Welche Navigation SDK-APIs sollten nur von Mobility Services-Kunden verwendet werden?
- Kann ich als Mobility Services-Kunde auch eine Nicht-Mobility Services-Implementierung des Navigation SDK verwenden?
Produktdetails
- Ihre App muss ein Dialogfeld mit den Nutzungsbedingungen des Navigation SDK implementieren, das jeder Fahrer akzeptieren muss. In diesem Dialogfeld hat der Fahrer die Möglichkeit, den Nutzungsbedingungen zuzustimmen. Eine Textdatei mit den Nutzungsbedingungen wird mit dem Navigation SDK bereitgestellt.
- Verwenden Sie unter Android die Methode
NavigationApi.showTermsAndConditionsDialog
, um das Dialogfeld mit den Nutzungsbedingungen anzuzeigen. - Rufen Sie in 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, die von einer App nicht geändert werden kann. Die App hat jedoch Zugriff auf über 70 Sprachen.
-
Ja. Unter Android wird die
LocationListener
nach dem Start im Hintergrund weiter ausgeführt. Ihre App richtet die Position weiterhin an der Straße aus und behält die Richtung bei.Damit Sie unter iOS weiterhin Standortaktualisierungen von Position und Kurs im Hintergrund erhalten, müssen Sie das Road Snapping implementieren und
allowsBackgroundLocationUpdates
aufYES
festlegen. -
Ja. Wenn eine Route erstellt oder geändert wird, stellt die
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 Apps nicht richtig für den Simulator erstellt. Wie kann ich das Problem beheben?
-
Ö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 Ihrem Binärprogramm.
Netzwerk
- Wie geht das Navigation SDK mit schlechter Verbindung um?
- Das Navigation SDK speichert die Route für jede Fahrt im Voraus im Cache. Die vorab im Cache gespeicherten Informationen umfassen Routinginformationen für 15 bis 20 Minuten sowie Routenalternativen für den Fall, dass der Fahrer von der Route abweicht. Das Navigation SDK schätzt die Position mithilfe des GPS und der Sensoren des Geräts.
- Gibt es einen Offlinemodus?
- Nein, das Navigation SDK bietet derzeit keinen Offlinemodus. Das SDK stellt jedoch vorab im Cache gespeicherte Informationen für eine Fahrt zur Verfügung.
Daten
- Kann ich alle Stopps/Ziele einer Fahrt abrufen, bevor ich die Route starte?
-
Ja. Rufen Sie in Android
Navigator.getRouteSegments()
auf, um die Wegbeschreibung für eine Route abzurufen.Rufen Sie unter iOS
GMSNavigator.routeLegs(read)
auf. - Ist die detaillierte Routenführung am Start einer Route verfügbar?
- Ja. Das Navigation SDK stellt eine Liste von Routensegmenten bereit. Außerdem kann der Fahrer in der Kopfzeile durch die Karte mit der Wegbeschreibung wischen, um die einzelnen Fahrmanöver zu sehen.
- Wie wird die voraussichtliche Ankunftszeit den App-Nutzern mitgeteilt?
-
So geben Sie App-Nutzern in Android Informationen zur voraussichtlichen Ankunftszeit:
- Rufen Sie die Zeit und Entfernung für alle Wegpunkte mit
Navigator.getTimeAndDistanceList()
ab. - Leiten Sie diese Informationen an die Clientanwendung weiter, wie Sie es auch bei der geschätzten Ankunftszeit des Fahrers tun.
So geben Sie App-Nutzern unter iOS Informationen zur voraussichtlichen Ankunftszeit:
- Rufen Sie die Etappen der Route mit
Navigator.getRouteSegments()
ab. - Rufen Sie
GMSNavigator.timeToNextDestination
für jede Etappe auf. - Leiten Sie die Zeitinformationen an die Clientanwendung weiter, wie Sie es auch bei der geschätzten Ankunftszeit des Fahrers tun.
- Rufen Sie die Zeit und Entfernung für alle Wegpunkte mit
-
Kann mit
RoadSnappedLocationProvider
der aktuelle Standort des Fahrers abgerufen werden, wenn die Navigation nicht im Vordergrund ist? -
Ja. Unter Android wird
RoadSnappedLocationProvider
standardmäßig im Hintergrund ausgeführt.Damit die Navigation unter iOS im Hintergrund weiterläuft, müssen Sie den Listener für
GMSRoadSnappedLocationProviderListener
implementieren und die EigenschaftallowsBackgroundLocationUpdates
aufTRUE
festlegen. - Unterstützt das Navigation SDK Geofencing?
-
Nein. Im Kontext der Navigation hat
remainingTimeOrdistanceChangeListener
einen Vorteil gegenüber einem Geofence. Der Geofence berücksichtigt möglicherweise nicht die Straßenführung und ist möglicherweise nicht auf den genauen Punkt zentriert, zu dem der Fahrer navigiert.Sie können diese Funktion mit
remainingTimeOrdistanceChangeListener
annähern.- 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 Meter festlegen, erhalten Sie einen Callback, wenn sich die Entfernung zum Ziel um 100 Meter ändert. Wenn sich die Entfernung verringert, können Sie diesen Grenzwert auf einen kleineren Wert aktualisieren und erhalten häufiger Rückrufe. Prüfen Sie dann die verbleibende Entfernung, um festzustellen, ob Sie sich in der Nähe des Abhol- oder Abgabeorts befinden.
Implementieren Sie in 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. In Android können Sie Benachrichtigungen mit
Navigator.setHeadsUpNotificationEnabled
verwalten. Diese Methode hat ein boolesches Argument.FALSE
deaktiviert Benachrichtigungen,TRUE
aktiviert sie.In iOS können Sie Hintergrundbenachrichtigungen für auf Straßen ausgerichtete Standorte deaktivieren, indem Sie
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
auf NO setzen.Wenn Sie die Hintergrundverarbeitung für andere Standortbenachrichtigungen deaktivieren möchten, rufen Sie
GMSNavigator.sendsBackgroundNotifications(NO)
auf.
UI-Anpassung
- Kann ich die beste Routenoption farblich kennzeichnen?
- Nein. Das Einfärben einer bestimmten Routenoption wird derzeit nicht unterstützt.
- Kann das Navigation SDK die voraussichtliche Ankunftszeit für das endgültige Ziel anzeigen?
-
Ja. Verwenden Sie in Android die folgenden Methoden:
- Rufen Sie die Zeit und Entfernung für alle Wegpunkte mit
Navigator.getTimeAndDistanceList()
ab. - Mit
NavigationFragment.setEtaCardEnabled(false)
können Sie die voraussichtliche Ankunftszeit des aktuellen Wegpunkts ausblenden. - Rendern Sie die voraussichtliche Ankunftszeit am Zielort.
Verwenden Sie unter iOS Folgendes:
- Rufen Sie einfach
GMSNavigator.routeLegs(read)
an. - Rufen Sie im letzten Schritt
GMSNavigator.timeToNextDestination
auf. - Blenden Sie die voraussichtliche Ankunftszeit des aktuellen Wegpunkts mit
MSMapView.settings.navigationFooterEnabled=NO
auf FALSE aus. - Rendern Sie die voraussichtliche Ankunftszeit am Zielort.
- Rufen Sie die Zeit und Entfernung für alle Wegpunkte mit
- Wie kann ich ETA-Updates ausblenden?
-
Sie haben folgende Möglichkeiten, ETA-Karten zu deaktivieren:
- Verwenden Sie unter Android
navigationView.setEtaCardEnabled(false)
. - Verwenden Sie unter iOS
GMSMapView.settings.navigationFooterEnabled=NO
.
- Verwenden Sie unter Android
-
In Android verwenden Sie
StylingOptions
, um die Hintergrundfarbe festzulegen. Verwenden Sie die Member-FunktionensetHeaderEnabled
undsetFooterEnabled
vonNavigationFragment
, um Kopf- und Fußzeile ein- oder auszublenden.Verwenden Sie unter iOS
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
, um das Hintergrundfarb-Styling festzulegen. Verwenden Sie die AttributenavigationFooterEnabled
undnavigationHeaderEnabled
vonGMSUISettings
, um die Kopf- und Fußzeile ein- oder auszublenden.
Routing
- Kann ich einem Fahrer eine bestimmte Route vorgeben oder alternative Routen entfernen?
- Nein. Standardmäßig werden mehrere Routen angezeigt 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 ebenfalls 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 ein
Marker
mit einem benutzerdefinierten Titel für das Ziel sowie dem Breiten- und Längengrad. Das Navigation SDK zeigt den benutzerdefinierten Titel und die Koordinaten auf derNavigationMap
an.Unter iOS erstellen und zeigen Sie ein
GMSMarker
für das Ziel an. - Kann ich mit dem Navigation SDK Abweichungen von einem definierten Pfad erfassen?
-
Ja. Unter Android können Sie
Navigator.setRouteChangedListener
verwenden, um Benachrichtigungen zu erhalten, wenn sich eine Route ändert oder eine neue Route empfohlen wird:- Registrieren Sie einen Listener, der die Geräteposition entlang der Route mit der Methode
Navigator.setRouteChangedListener
prüft. - Fügen Sie dem Callback-Ereignishandler
onRouteChanged
Code hinzu:- Senden Sie eine Nachricht mit der aktualisierten geschätzten Ankunftszeit und den aktualisierten Entfernungsangaben an den App-Nutzer.
- Den Standort des Geräts verfolgen
- [Optional] Fügen Sie weitere Funktionen hinzu, die Ihre App benötigt, um zu reagieren, wenn der Fahrer von der vorgeschriebenen Route abweicht.
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
. - Greifen Sie über die Attribute
routeLegs
undcurrentRouteLeg
desGMSNavigator
auf die neue Route zu.
- Registrieren Sie einen Listener, der die Geräteposition entlang der Route mit der Methode
-
Ja. Rufen Sie in 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. Rufen Sie in Android
simulateLocationsAlongNewRoute
auf, um eine Fahrt mit Routenänderung zu simulieren. Bei der MethodesimulateLocationsAlongExistingRoute
werden Änderungen an der vorhandenen Route ignoriert.Unter iOS können Sie mit
GMSLocationSimulator.simulateAlongNewRouteToDestinations
eine Fahrt simulieren, die eine Routenänderung beinhaltet. Wenn Sie keine Änderungen an der Route erwarten, können SieGMSLocationSimulator.simulateLocationsAlongExistingRoute
oderGMSLocationSimulator.simulateAlongNewRouteToDestinations
verwenden.
Workflows
- Wie schließe ich die Benachrichtigung, 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. Dasresume intent
wird ausgelöst, wenn der App-Nutzer auf die Benachrichtigung klickt. Normalerweise wirdNavigator.startguidance(getIntent())
über die Haupt-Activity aufgerufen, die die Activity aufruft, wenn der App-Nutzer auf die Benachrichtigung klickt.
Mobilitätsdienste
Die Google Maps Platform Mobility Services bieten eine Sammlung von APIs und SDKs, die Unternehmen aus der Transport- und Logistikbranche bei ihren Anforderungen unterstützen. Für Kunden von Mobilitätsdiensten wird das Navigation SDK in der Regel in Verbindung mit zugehörigen Diensten für die Routenoptimierung, den Versand, die Aufgabenverfolgung, die Flottenanalyse und mehr verwendet. 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 nur für ausgewählte Kunden verfügbar. Weitere Informationen erhalten Sie von Ihrem Vertriebsmitarbeiter.
ReportBillableEvent
-Aufruf. Nur Mobility Services-Kunden sollten die Methode ReportBillableEvent
aufrufen.
Im Navigation SDK gibt es mehrere APIs, die nur für Kunden von Mobility Services vorgesehen sind, denen Google die Nutzung pro Transaktion in Rechnung stellt. Wenn Sie kein Mobility Services-Kunde sind, sind die folgenden Methoden No-Ops:
Ja. Kunden von Mobility Services können sowohl Mobility Services- als auch Nicht-Mobility Services-Implementierungen des Navigation SDK verwenden. 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 sich von denen unterscheiden, die Sie für Ihre Mobility Services-Implementierung verwenden. Weitere Informationen finden Sie in der Übersicht zur Einrichtung des Navigation SDK.
Weitere Informationen zur Verwendung einer Nicht-Mobility Services-Implementierung des Navigation SDK, einschließlich der Migration einer App von einem Implementierungstyp zum anderen, erhalten Sie von Ihrem Google-Kundenbetreuer.
Hinweis: Wenn Sie kein Mobility Services-Kunde sind und mehr über die Mobility Services-Sammlung von APIs und SDKs erfahren möchten, wenden Sie sich an den Google Maps Platform-Vertrieb.