Plattform auswählen: Android iOS

Echtzeit-Störungen konfigurieren

Echtzeit-Störungen sind eine Sammlung von Funktionen, die Nutzer über Störungen auf ihrer Route informieren und es ihnen ermöglichen, Störungen zu melden und zu bestätigen. Beispiele für Störungen sind Verkehrsunfälle, Staus, Polizeikontrollen und Blitzer, Baustellen, Spursperrungen und bestimmte Wetterbedingungen. Auf dieser Seite werden die Funktionen für Echtzeitstörungen und ihre Konfigurationsoptionen beschrieben. Außerdem werden Aspekte für Apps mit benutzerdefinierten Navigations-UIs erläutert.

Echtzeitfunktionen für Verkehrsstörungen

Das Navigation SDK enthält die folgenden Echtzeitfunktionen für Störungen als Teil der Kernnavigation:

Diese Funktionen sind konfigurierbar und standardmäßig aktiviert. In den folgenden Abschnitten finden Sie weitere Informationen zu den Funktionen und verfügbaren Konfigurationsoptionen.

Interaktive Hinweise zu Verkehrsstörungen entlang von Routen

Wenn in einer App eine Route angezeigt wird, entweder in einer Routenübersicht oder während der aktiven Navigation, werden alle aktuellen Störungen als Hinweiskästen entlang der Route angezeigt. Wenn Sie die Verkehrsebene aktivieren, werden auch Störungen auf der Karte angezeigt, die nicht auf Ihrer Route liegen. Die Kurzinfos enthalten ein Symbol, das den Typ der Störung angibt.

Hinweise entlang von Routen

Mit setTrafficPromptsEnabled können Sie die Anzeige von Hinweisen zu Störungen entlang von Routen steuern. Damit wird auch die Anzeige automatischer Benachrichtigungen gesteuert, wenn sich ein Nutzer einer Störung nähert.

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

Details zu Störungen anzeigen, wenn ein Nutzer auf einen Hinweis tippt

Wenn Sie auf einen Hinweis zu einer Störung tippen, wird eine Infokarte mit weiteren Details geöffnet. Das gilt sowohl für Hinweise auf der Route als auch für Hinweise abseits der Route. Hinweise abseits der Route werden jedoch nur angezeigt, wenn die Verkehrsebene aktiviert ist. Auf der Karte werden der Störungstyp, die Uhrzeit, zu der die Störung zuletzt gemeldet wurde, und manchmal eine Option angezeigt, mit der Sie abstimmen können, ob die Störung noch vorhanden ist. Der Infokartentyp und die Konfigurationsoptionen variieren je nachdem, ob sich der Nutzer in der aktiven Navigation befindet.

Hinweiskarten in Routenübersichten, bevor die aktive Navigation gestartet wird

Bevor die aktive Navigation gestartet wird, können Nutzer auf der Karte oder in der Routenübersicht auf einen Hinweis auf der Route oder abseits der Route tippen, um eine Infokarte zu öffnen. Für Abweichungen von der Route muss die Verkehrsebene aktiviert sein. Die Infokarte enthält weitere Details zur Störung.

Übersichtskarte

Mit setTrafficIncidentCardsEnabled können Sie festlegen, ob Nutzer in Routenübersichten auf Hinweise zu Störungen tippen können, um weitere Informationen aufzurufen.

// Using the SupportNavigationFragment
mNavFragment.setTrafficIncidentCardsEnabled(true);

// Using the NavigationView
navigationView.setTrafficIncidentCardsEnabled(true);

Hinweiskarten während der aktiven Navigation

Während der aktiven Navigation können Nutzer auf einen Hinweis zu einer Störung auf der Route oder abseits der Route tippen, um eine Infokarte zu öffnen. Auf der Karte werden der Störungstyp und die Uhrzeit der letzten Meldung angezeigt. Außerdem sind Schaltflächen enthalten, über die Nutzer abstimmen können, ob die Störung noch vorhanden ist.

Abstimmungen sind für Störungen auf der Route und abseits der Route im Umkreis von 5 km um den Nutzer verfügbar, mit Ausnahme von Straßensperrungen. Google verarbeitet diese Abstimmungen, um zu entscheiden, ob die Störung weiterhin angezeigt werden soll. Die Stimmen können auch auf der Karte für andere Nutzer des Google Maps und Navigation SDK angezeigt werden.

Infokarte für aktive Navigation

Sie können die Anzeige und Tippbarkeit von Hinweisen zu Störungen während der aktiven Navigation mit setTrafficPromptsEnabled steuern. Damit wird auch die Anzeige von Hinweisen entlang von Routen und die Anzeige automatischer Benachrichtigungen gesteuert, wenn sich ein Nutzer einer Störung nähert.

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

Automatisierte Benachrichtigungen zu Störungen mit Abstimmung während der aktiven Navigation

Wenn sich ein Nutzer während der aktiven Navigation einer Störung auf einer Route nähert, wird eine Aufforderung mit Informationen zur Störung und Schaltflächen angezeigt, über die er abstimmen kann, ob die Störung noch vorhanden ist. Von Nutzern abgegebene Stimmen werden von Google verarbeitet und können auf der Karte für andere Nutzer des Google Maps und Navigation SDK angezeigt werden. Außerdem wird anhand der Stimmen entschieden, ob die Verkehrsbehinderung weiterhin angezeigt werden soll.

Infokarte für aktive Navigation

Sie können die Anzeige von Benachrichtigungsaufforderungen während der aktiven Navigation mit setTrafficPromptsEnabled konfigurieren. Damit wird auch die Anzeige von Hinweis-Pop-ups entlang von Routen gesteuert.

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

Meldung von Störungen während der aktiven Navigation

Während des aktiven Navigationsmodus wird in der Navigationsbenutzeroberfläche eine Schaltfläche angezeigt, über die Nutzer neue Störungen auf ihrer Route melden können. Wenn ein Nutzer auf den Button tippt, wird ein Menü mit den verfügbaren Störungstypen angezeigt, die gemeldet werden können. Von Nutzern eingereichte Meldungen werden von Google verarbeitet und können auf der Karte für andere Nutzer des Google Maps und Navigation SDKs angezeigt werden.

Wenn Sie eine Straßensperrung melden, wird möglicherweise eine alternative Route angezeigt, um den gesperrten Abschnitt zu umfahren. Der Nutzer wird dann aufgefordert, die Umleitung zu bestätigen oder abzulehnen. Die Verfügbarkeit dieser Funktion kann variieren.

Button „Berichte“ Menü „Berichte“

Schaltfläche für Standardberichte ein- oder ausblenden

Sie können die Sichtbarkeit der Schaltfläche für Standardberichte während der aktiven Navigation mit setReportIncidentButtonEnabled konfigurieren.

// Enables the incident reporting button to show in situations where incident
// reporting is possible.

// Using the SupportNavigationFragment
mNavFragment.setReportIncidentButtonEnabled(true);

// Using the NavigationView
navigationView.setReportIncidentButtonEnabled(true);

Benutzerdefinierten Meldebutton hinzufügen

Anstelle der standardmäßigen Schaltfläche für die Meldung von Störungen können Sie der Navigations-UI eine benutzerdefinierte Schaltfläche für die Meldung hinzufügen. Wenn der Nutzer auf die benutzerdefinierte Schaltfläche klickt, können Sie die Anzeige des Berichtsmenüs auslösen, indem Sie die Methode showReportIncidentsPanel aufrufen. Bevor Sie eine benutzerdefinierte Schaltfläche zum Melden hinzufügen, prüfen Sie mit dem Aufruf von isIncidentReportingAvailable, ob die App in der aktiven Navigation verwendet wird und der Nutzer sich in einem Land befindet, in dem das Melden aktiviert ist. Wenn einer dieser Punkte nicht zutrifft, wird das Berichtsmenü nicht angezeigt.

  Button customReportIncidentButton = findViewById(R.id.custom_reporting_button);
  
  // Check if reporting is available before displaying your button
  customReportIncidentButton.setVisibility(
      navigationView.isReportingAvailable ? View.VISIBLE : View.GONE);
  
  // Trigger the reporting flow if the button is clicked
  customReportIncidentButton.setOnClickListener(v ->
      navigationView.showReportIncidentsPanel());
  

Mit benutzerdefinierten Navigations-UIs arbeiten

Wenn Ihre Implementierung des Navigation SDK benutzerdefinierte UI-Elemente enthält, müssen Sie die Echtzeit-Störungselemente berücksichtigen, um Konflikte zu vermeiden.

Positionierung des Buttons „Berichte“

Standardmäßig befindet sich die Schaltfläche zum Melden von Störungen unten in der Karte – rechts bei linksläufigen Sprachen und links bei rechtsläufigen Sprachen. Wenn Sie die Schaltfläche für Berichte verschieben müssen, um Platz für benutzerdefinierte UI-Elemente zu schaffen, fügen Sie ein benutzerdefiniertes Steuerelement vom Typ BOTTOM_END_BELOW oder FOOTER hinzu. Dadurch wird die Position der Schaltfläche auf dem Bildschirm nach oben verschoben. Wenn Sie Ihre eigenen benutzerdefinierten UIs in den benutzerdefinierten Steuerelementen platzieren, wird außerdem dafür gesorgt, dass alle vom Navigation SDK angezeigten Aufforderungen während der Anzeige richtig über Ihren benutzerdefinierten UI-Elementen eingeblendet werden. Wenn Sie keine benutzerdefinierten Steuerelemente verwenden können, nutzen Sie die Prompt Visibility API, um potenzielle Konflikte mit der Benutzeroberfläche zu vermeiden.

Prompt Visibility API (experimentell)

Mit der Prompt Visibility API können Sie Konflikte zwischen UI-Elementen, die vom Navigation SDK generiert werden, und Ihren eigenen benutzerdefinierten UI-Elementen vermeiden. Dazu fügen Sie einen Listener hinzu, um einen Callback zu empfangen, bevor ein UI-Element des Navigation SDK angezeigt wird und sobald das Element entfernt wird. Sie können Callbacks für Echtzeit-Störungselemente erhalten, darunter Infokarten, Aufforderungen und das Menü für Störungsmeldungen, sowie für andere Benachrichtigungen, die vom Navigation SDK generiert werden.
// Sample listener
val listener: PromptVisibilityChangedListener = { isVisible ->
	if (isVisible) {
		customFab.visibility = false
		customFooter.visibility = false
		moveSomeOtherThingsAround()
	} else {
		customFab.visibility = true
		customFooter.visibility = true
		moveSomeThingsBackToWhereTheyWereBefore()
	}
}

// Inside onCreate()
navigationView.addPromptVisibilityChangedListener(listener)

// Inside onDestroy()
navigationView.removePromptVisibilityChangedListener(listener)