Häufig gestellte Fragen
Fakten zum Produkt
- Wie sollten die Hinweise zu den Nutzungsbedingungen des Navigation SDK angezeigt werden?
- Welche Sprachen werden von der Sprachführung unterstützt?
- Wird die Lage beibehalten, wenn der Fahrer den Navigationsmodus beendet?
- Sind Polylinien verfügbar, wenn eine Route gestartet oder geändert wird?
- Müssen App-Nutzer Google Maps Mobile installiert haben?
- Kann das Navigation SDK Parkplätze in der Nähe von Restaurants und anderen Zielen identifizieren?
- Zeigt das Navigation SDK die Verkehrsrichtung auf den Fahrspuren an, wenn Sie sich einem Wendepunkt nähern?
Probleme
Netzwerk
Daten
- Kann ich alle Haltestellen/Ziele in einer Fahrt abrufen, bevor ich die Route starte?
- Ist zu Beginn einer Route eine detaillierte Routenführung verfügbar?
- Wie wird die voraussichtliche Ankunftszeit den Nutzern der App mitgeteilt?
- Kann
RoadSnappedLocationProvider
verwendet werden, um die aktuelle Position des Snaps des Fahrers abzurufen, wenn die Navigation nicht im Vordergrund ausgeführt wird? - Unterstützt das Navigation SDK Geofencing?
- Kann ich Benachrichtigungen deaktivieren, wenn die Navigations-App im Hintergrund ausgeführt wird?
UI-Anpassung
- Kann ich die beste Routenoption farblich kennzeichnen?
- Kann das Navigation SDK die voraussichtliche Ankunftszeit für das Ziel anzeigen?
- Wie kann ich Aktualisierungen zur voraussichtlichen Ankunftszeit ausblenden?
- Welche Anpassungen der Benutzeroberfläche sind für die Kopf- und Fußzeilenkarten verfügbar?
Routen
- Kann ich einem Fahrer eine bestimmte Route geben oder alternative Routen entfernen?
- Kann ich dem Fahrer ein anderes Label für den Zielort anzeigen als der Standardzielort?
- Kann ich das Navigation SDK verwenden, um Abweichungen von einem definierten Pfad zu verfolgen?
- Kann der Fahrer die Navigation beenden, ohne die Route abzuschließen?
Simulator
Workflows
Fakten zum Produkt
- In Ihrer App muss ein Dialogfeld mit den Hinweisen zu den Nutzungsbedingungen des Navigation SDK vorhanden sein, das jeder Fahrer akzeptieren muss. In diesem Dialogfeld kann der Fahrer den Nutzungsbedingungen zustimmen. Im Navigation SDK wird eine Textdatei mit den Nutzungsbedingungen bereitgestellt.
- In Android können Sie die Methode
NavigationApi.showTermsAndConditionsDialog
verwenden, um das Dialogfeld mit den Begriffen 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, die von einer App nicht geändert werden kann. Die App hat jedoch Zugriff auf über 70 Sprachen.
-
Ja. Nach dem Start in Android wird
LocationListener
weiterhin im Hintergrund ausgeführt. Ihre App fährt mit der Einrastfunktion an der Straße fort und behält die Lage bei.Wenn Sie in iOS weiterhin Standortaktualisierungen für Position und Peilung im Hintergrund erhalten möchten, implementieren Sie die Straßenausrichtung und setzen Sie
allowsBackgroundLocationUpdates
aufYES
. -
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 Richtung 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.
Netzwerk
- Wie geht das Navigation SDK mit schlechter Konnektivität um?
- Das Navigation SDK speichert die Route für jede Fahrt vorab im Cache. Die vorab im Cache gespeicherten Informationen umfassen Routeninformationen für 15 bis 20 Minuten sowie Alternativrouten für den Fall, dass der Fahrer von der Route abweicht. Das Navigation SDK ermittelt die ungefähre Position mithilfe des GPS und der Sensoren des Geräts.
- Ist ein Offlinemodus verfügbar?
- Nein, das Navigation SDK bietet derzeit keinen Offlinemodus. Das SDK bietet jedoch vorab im Cache gespeicherte Informationen für eine Fahrt.
Daten
- Kann ich alle Haltestellen/Ziele in einer Fahrt abrufen, bevor ich die Route starte?
-
Ja. Rufen Sie in Android
Navigator.getRouteSegments()
auf, um Wegbeschreibungen für eine Route abzurufen.Rufen Sie auf einem iOS-Gerät
GMSNavigator.routeLegs(read)
auf. - Ist zu Beginn einer Route eine detaillierte Routenführung verfügbar?
- Ja. Das Navigation SDK enthält eine Liste von Routensegmenten. Außerdem kann der Fahrer durch die Karte mit den Wegbeschreibungen in der Kopfzeile wischen, um die einzelnen Abbiegungen zu sehen.
- Wie wird die voraussichtliche Ankunftszeit an die App-Nutzer kommuniziert?
-
So können Sie App-Nutzern auf Android-Geräten Informationen zur voraussichtlichen Ankunftszeit mitteilen:
- Rufen Sie mit
Navigator.getTimeAndDistanceList()
die Zeit und Entfernung für alle Wegpunkte ab. - Leiten Sie diese Informationen wie für die ETA des Treibers an die Clientanwendung weiter.
So können Sie App-Nutzern auf iOS-Geräten Informationen zur voraussichtlichen Ankunftszeit mitteilen:
- Rufen Sie die Streckenabschnitte in der Fahrt mit
Navigator.getRouteSegments()
ab. - Rufen Sie für jede Etappe
GMSNavigator.timeToNextDestination
auf. - Leiten Sie die Zeitinformationen an die Clientanwendung weiter, so wie Sie es derzeit für die ETA des Treibers tun.
- Rufen Sie mit
-
Kann
RoadSnappedLocationProvider
verwendet werden, um die aktuelle, abgefahrene Position des Fahrers abzurufen, wenn die Navigation nicht im Vordergrund ausgeführt wird? -
Ja. In Android wird die
RoadSnappedLocationProvider
standardmäßig im Hintergrund ausgeführt.Damit die Navigation in iOS im Hintergrund weiter ausgeführt wird, implementieren Sie den Listener für
GMSRoadSnappedLocationProviderListener
und legen Sie das AttributallowsBackgroundLocationUpdates
aufTRUE
fest. - Unterstützt das Navigation SDK Geofencing?
-
Nein. Im Kontext der Navigation hat
remainingTimeOrdistanceChangeListener
einen Vorteil gegenüber einem einfachen Geofence. Der Geofence berücksichtigt möglicherweise die Straßengeometrie nicht und ist möglicherweise nicht genau auf den Punkt zentriert, zu dem der Fahrer navigiert.Mit
remainingTimeOrdistanceChangeListener
können Sie diese Funktionalität näherungsweise bestimmen.- Legen Sie den Grenzwert fest, um die Häufigkeit der Rückrufe zu bestimmen.
- Überprüfen Sie die verbleibende Entfernung zum Ziel.
Wenn Sie den Grenzwert beispielsweise auf 100 m festlegen, erhalten Sie einen Callback, 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äufigere Callbacks erhalten. Prüfen Sie dann die verbleibende Entfernung, um festzustellen, ob Sie sich nah genug am Abhol- und Absetzort befinden.
Implementieren Sie unter iOS den Listener
GMSNavigatorListener.didUpdateRemainingDistance
, um den Abstand zwischen Benachrichtigungen zu verwalten. - Kann ich Benachrichtigungen deaktivieren, wenn die Navigations-App im Hintergrund ausgeführt wird?
-
Ja. In Android lassen sich Benachrichtigungen über
Navigator.setHeadsUpNotificationEnabled
verwalten. Diese Methode hat ein boolesches Argument.FALSE
deaktiviert Benachrichtigungen,TRUE
aktiviert Benachrichtigungen.Deaktivieren Sie unter iOS Hintergrundbenachrichtigungen für Standorte, die an einer Straße ausgerichtet sind, indem Sie
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
auf NEIN setzen.Um die Hintergrundverarbeitung für andere Standortbenachrichtigungen zu deaktivieren, rufen Sie
GMSNavigator.sendsBackgroundNotifications(NO)
auf.
UI-Anpassung
- Kann ich die beste Route farblich kennzeichnen?
- Nein. Die Farbcodierung für bestimmte Routenoptionen wird derzeit nicht unterstützt.
- Kann das Navigation SDK die voraussichtliche Ankunftszeit für das Ziel anzeigen?
-
Ja. In Android verwenden Sie die folgenden Methoden:
- Rufen Sie mit
Navigator.getTimeAndDistanceList()
die Zeit und Entfernung für alle Wegpunkte ab. - Mit
NavigationFragment.setEtaCardEnabled(false)
blenden Sie die voraussichtliche Ankunftszeit des aktuellen Wegpunkts aus. - Rendering der endgültigen Ziel-ETA.
Für iOS verwenden Sie Folgendes:
- Rufen Sie einfach
GMSNavigator.routeLegs(read)
an. - Rufen Sie mit dem letzten Streckenabschnitt
GMSNavigator.timeToNextDestination
auf. - Blenden Sie die voraussichtliche Ankunftszeit des aktuellen Wegpunkts aus, indem Sie
MSMapView.settings.navigationFooterEnabled=NO
auf FALSE setzen. - Rendering der endgültigen Ziel-ETA.
- Rufen Sie mit
- Wie kann ich Aktualisierungen zur voraussichtlichen Ankunftszeit ausblenden?
-
Sie können Karten für voraussichtliche Ankunftszeiten mit den folgenden Methoden deaktivieren:
- In Android:
navigationView.setEtaCardEnabled(false)
. - Verwenden Sie unter iOS
GMSMapView.settings.navigationFooterEnabled=NO
.
- In Android:
-
In Android verwenden Sie
StylingOptions
, um die Gestaltung der Hintergrundfarbe festzulegen. Mit den MitgliedsfunktionensetHeaderEnabled
undsetFooterEnabled
vonNavigationFragment
können Sie die Kopf- und Fußzeile ein- oder ausblenden.Unter iOS können Sie die Hintergrundfarbe mit
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
festlegen. Mit den EigenschaftennavigationFooterEnabled
undnavigationHeaderEnabled
vonGMSUISettings
können Sie die Kopf- und Fußzeile ein- oder ausblenden.
Routen
- Kann ich einem Fahrer eine bestimmte Route geben oder alternative Routen entfernen?
- Nein. Standardmäßig stehen mehrere Routen zur Verfügung und die schnellste Route hat Priorität. Sie können die Standardroute beeinflussen, indem Sie Einstellungen wie „Autobahnen und Mautstraßen vermeiden“ zu Ihrer Anfrage hinzufügen. Das Hinzufügen von Wegpunkten wirkt sich auch auf die Route aus.
- Kann ich dem App-Nutzer für das Ziel ein anderes Label anzeigen als für den Standardzielspeicherort?
-
Ja. Erstellen Sie in Android einen
Marker
mit einem benutzerdefinierten Titel für das Ziel und dem Breiten-/Längengrad. Das Navigation SDK zeigt den benutzerdefinierten Titel und die Koordinaten imNavigationMap
an.Unter iOS erstellen Sie eine
GMSMarker
für das Ziel und zeigen sie an. - Kann ich das Navigation SDK verwenden, um Abweichungen von einem definierten Pfad zu verfolgen?
-
Ja. Unter Android kannst du
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-Event-Handler
onRouteChanged
Code hinzu:- App-Nutzer eine Nachricht mit aktualisierten Angaben zur voraussichtlichen Ankunftszeit und zur Entfernung senden.
- Standort des Geräts erfassen
- [optional] Fügen Sie weitere Funktionen hinzu, die Ihre App verarbeiten muss, wenn der Fahrer nicht auf der vorgeschriebenen Route ist.
Verwenden Sie unter iOS den
GMSNavigator
und die zugehörigen Listener, um Benachrichtigungen zu erhalten, wenn sich eine Route ändert oder eine neue Route empfohlen wird:- Implementieren Sie im Ansichts-Controller das
GMSNavigatorListener
-Protokoll und dasGMSRoadSnappedLocationProviderListener
-Protokoll. - Implementieren Sie
GMSNavigatorListener.navigatorDidChangeRoute
. - Rufen Sie die neue Route mit den Attributen
routeLegs
undcurrentRouteLeg
vonGMSNavigator
auf.
- Registrieren Sie einen Listener, der die Geräteposition entlang der Route mit der Methode
-
Ja. In Android kannst du die Methode
Navigator.stopGuidance()
aufrufen, um die Navigation zu beenden.Rufen Sie auf einem iOS-Gerät
GMSNavigator.clearDestinations
auf.
Simulator
- Unterstützt der Simulator Routenänderungen?
-
Ja. Rufe in Android
simulateLocationsAlongNewRoute
auf, um eine Fahrt mit einer Routenänderung zu simulieren. Bei der MethodesimulateLocationsAlongExistingRoute
werden Änderungen an der vorhandenen Route ignoriert.Verwenden Sie unter iOS
GMSLocationSimulator.simulateAlongNewRouteToDestinations
, um eine Fahrt mit einer Routenänderung zu simulieren. Wenn Sie keine Routenänderungen erwarten, können SieGMSLocationSimulator.simulateLocationsAlongExistingRoute
oderGMSLocationSimulator.simulateAlongNewRouteToDestinations
verwenden.
Workflows
- Wie schließe ich die Benachrichtigung nach dem Schließen einer Aktivität, 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, stoppt die Navigation und die Benachrichtigung verschwindet.
Verwenden Sie
Navigator.startGuidance(intent resumeIntent)
, um Klicks auf die Benachrichtigung zu verarbeiten. Dieresume intent
wird ausgelöst, wenn der App-Nutzer auf die Benachrichtigung klickt. Üblicherweise wird dieNavigator.startguidance(getIntent())
von der Hauptaktivität aufgerufen, die die Aktivität ruft, wenn der App-Nutzer auf die Benachrichtigung klickt.