Plattform auswählen: Android iOS

Echtzeitstörungen konfigurieren

Die Echtzeit-Störungsmeldungen 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 Unfälle, Staus, Polizeipräsenz und Blitzer, Baustellen, Spursperrungen und bestimmte Wetterbedingungen. Auf dieser Seite werden die Funktionen für Echtzeitstörungen und ihre Konfigurationsoptionen beschrieben, einschließlich Überlegungen für Apps, die benutzerdefinierte Navigations-UIs verwenden.

Echtzeitfunktionen für Störungen

Das Navigation SDK bietet die folgenden Echtzeitfunktionen für Störungen im Rahmen der Hauptnavigation:

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 Störungen entlang der Route

Wenn eine App eine Route anzeigt, entweder in einer Routenübersicht oder während der aktiven Navigation, werden aktuelle Störungen als Callouts entlang der Route angezeigt. Wenn Sie die Verkehrsebene aktivieren, werden auch Störungen außerhalb der Route auf der Karte angezeigt. Die Callouts enthalten ein Symbol, das die Art der Störung angibt.

Hinweise entlang der Route

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 Zusatz 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 die Art der Störung, der Zeitpunkt der letzten Meldung und manchmal eine Option angezeigt, mit der Sie abstimmen können, ob die Störung noch besteht. Der Typ der Infokarte und die Konfigurationsoptionen hängen davon ab, ob der Nutzer die aktive Navigation verwendet.

Infokarten in Routenübersichten vor dem Start der aktiven Navigation

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

Infokarte „Übersicht“

Mit setTrafficIncidentCardsEnabled können Sie festlegen, ob Nutzer auf 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);

Infokarten während der aktiven Navigation

Während der aktiven Navigation können Nutzer auf einen Hinweis zu einer Störung auf oder abseits der Route tippen, um eine Infokarte zu öffnen. Auf der Karte werden die Art der Störung und der Zeitpunkt der letzten Meldung angezeigt. Außerdem enthält sie Schaltflächen, über die Nutzer abstimmen können, ob die Störung noch besteht.

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

Infokarte zur aktiven Navigation

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

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

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

Automatische Warnungen 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 angeben kann, ob die Störung noch besteht. Die von Nutzern abgegebenen Stimmen werden von Google verarbeitet und können anderen Nutzern von Google Maps und dem Navigation SDK auf der Karte angezeigt werden. Außerdem werden sie verwendet, um zu bestimmen, ob die Verkehrsbehinderung weiterhin angezeigt werden soll.

Infokarte zur aktiven Navigation

Mit setTrafficPromptsEnabled können Sie die Anzeige von Warnmeldungen während der aktiven Navigation konfigurieren. Damit wird auch die Anzeige von Callouts 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

Im aktiven Navigationsmodus wird auf der Navigationsoberfläche eine Schaltfläche angezeigt, über die Nutzer neue Störungen auf ihrer Route melden können. Wenn ein Nutzer auf die Schaltfläche tippt, wird ein Menü mit den verfügbaren Störungsarten angezeigt, die gemeldet werden können. Die von Nutzern eingereichten Meldungen werden von Google verarbeitet und können auf der Karte für andere Nutzer von Google Maps und des Navigation SDK angezeigt werden.

Wenn Sie eine Straßensperrung melden, wird Ihnen möglicherweise eine alternative Route angezeigt, um den gesperrten Abschnitt zu umgehen. Sie werden dann aufgefordert, die Routenänderung zu bestätigen oder abzulehnen. Diese Funktion ist nicht überall verfügbar.

Button „Melden“ Menü „Melden“

Schaltfläche für Standardberichte ein- oder ausblenden

Mit setReportIncidentButtonEnabled können Sie die Sichtbarkeit der Standard-Meldeschaltfläche während der aktiven Navigation 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);

Schaltfläche für benutzerdefinierte Berichte hinzufügen

Anstelle der Standardschaltfläche für die Meldung von Störungen können Sie der Navigations-UI eine benutzerdefinierte Schaltfläche hinzufügen. Wenn der Nutzer auf die benutzerdefinierte Schaltfläche klickt, können Sie die Anzeige des Melden-Menüs auslösen, indem Sie die Methode showReportIncidentsPanel aufrufen. Bevor Sie eine benutzerdefinierte Meldeschaltfläche hinzufügen, prüfen Sie, ob die App im aktiven Navigationsmodus ist und sich der Nutzer in einem Land befindet, in dem das Melden aktiviert ist. Rufen Sie dazu isIncidentReportingAvailable auf. Wenn eine dieser Bedingungen nicht erfüllt ist, wird das Menü „Melden“ 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 Elemente für Echtzeitstörungen berücksichtigen, um Konflikte zu vermeiden.

Positionierung der Meldeschaltfläche

Standardmäßig befindet sich die Schaltfläche zum Melden von Störungen am unteren Ende/in der hinteren Ecke der Karte – bei linksläufigen Sprachen auf der rechten Seite und bei rechtsläufigen Sprachen auf der linken Seite. Wenn Sie die Meldeschaltfläche 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 Benutzeroberflächen in den benutzerdefinierten Steuerelementen platzieren, werden alle vom Navigation SDK angezeigten Aufforderungen ordnungsgemäß über Ihren benutzerdefinierten UI-Elementen eingeblendet. Wenn du keine benutzerdefinierten Steuerelemente verwenden kannst, nutze die Prompt Visibility API, um potenzielle UI-Konflikte zu verwalten.

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, der einen Callback empfängt, 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, einschließlich Infokarten, Aufforderungen und dem Melden-Menü, 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)