Plattform auswählen: Android iOS

Echtzeit-Verkehrsbehinderungen konfigurieren

Echtzeit-Verkehrsbehinderungen sind eine Sammlung von Funktionen, mit denen Nutzer über Verkehrsbehinderungen auf ihrer Route informiert werden. Außerdem können sie selbst Verkehrsbehinderungen melden und bestätigen. Beispiele für Verkehrsbehinderungen sind Fahrzeugunfälle, Staus, Polizeipräsenz, Geschwindigkeitsmessungen, Baustellen, Fahrbahnsperrungen und bestimmte Wetterbedingungen. Auf dieser Seite werden die Funktionen für Echtzeit-Verkehrsbehinderungen und ihre Konfigurationsoptionen erläutert. Außerdem werden Überlegungen für Apps beschrieben, die benutzerdefinierte Navigations-UIs verwenden.

Funktionen für Echtzeit-Verkehrsbehinderungen

Das Navigation SDK enthält die folgenden Funktionen für Echtzeit-Verkehrsbehinderungen als Teil der Kernnavigation:

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

Interaktive Hinweise zu Verkehrsbehinderungen auf Routen

Wenn eine App eine Route anzeigt, entweder in einer Routenübersicht oder während der aktiven Navigation, werden alle aktuellen Verkehrsbehinderungen als Hinweise auf der Route angezeigt. Die Hinweise enthalten ein Symbol, das den Typ der Verkehrsbehinderung angibt.

Hinweise entlang von Routen

Sie können die Anzeige von Hinweisen zu Verkehrsbehinderungen auf Routen mit setTrafficPromptsEnabled steuern. Diese Funktion steuert auch die Anzeige automatischer Benachrichtigungen, wenn sich ein Nutzer einer Verkehrsbehinderung nähert.

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

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

Details zu Verkehrsbehinderungen anzeigen, wenn ein Nutzer auf einen Hinweis tippt

Nutzer können auf einen Hinweis tippen, um eine Infokarte mit weiteren Informationen zur Verkehrsbehinderung aufzurufen, z. B. den Typ der Verkehrsbehinderung, den Zeitpunkt der letzten Meldung und in einigen Fällen eine Option, um abzustimmen, ob die Verkehrsbehinderung noch vorhanden ist. Je nachdem, ob der Nutzer sich in der aktiven Navigation befindet, werden zwei verschiedene Arten von Infokarten angezeigt. Die Konfigurations optionen variieren für die einzelnen Typen.

Infokarten mit Hinweisen in Routenübersichten vor Beginn der aktiven Navigation

Wenn ein Nutzer vor Beginn der aktiven Navigation auf einen Hinweis in einer Routenübersicht tippt, wird eine Infokarte mit weiteren Informationen zur Verkehrsbehinderung angezeigt.

Übersichtskarte

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

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

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

Infokarten mit Hinweisen während der aktiven Navigation

Wenn während der aktiven Navigation ein Hinweis zu einer Verkehrsbehinderung auf einer Route angezeigt wird, können Nutzer darauf tippen, um eine Infokarte mit weiteren Informationen zur Verkehrsbehinderung aufzurufen, z. B. den Typ der Verkehrsbehinderung und den Zeitpunkt der letzten Meldung. Außerdem werden Schaltflächen angezeigt, mit denen sie abstimmen können, ob die Verkehrsbehinderung noch vorhanden ist. Von Nutzern eingereichte Abstimmungen werden von Google verarbeitet und können auf der Karte für andere Google Maps- und Navigation SDK-Nutzer angezeigt werden. Außerdem wird anhand der Abstimmungen entschieden, ob die Verkehrsbehinderung weiterhin angezeigt werden soll.

Infokarte für aktive Navigation

Mit können Sie die Anzeige und Tippbarkeit von Hinweisen zu Verkehrsbehinderungen während der aktiven Navigation steuern.setTrafficPromptsEnabled Diese Funktion steuert auch die Anzeige von Hinweisen auf Routen und die Anzeige automatischer Benachrichtigungen, wenn sich ein Nutzer einer Verkehrsbehinderung nähert.

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

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

Automatische Benachrichtigungen zu Verkehrsbehinderungen mit Abstimmung während der aktiven Navigation

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

Infokarte für aktive Navigation

Mit setTrafficPromptsEnabled können Sie die Anzeige von Benachrichtigungen während der aktiven Navigation konfigurieren. Diese Funktion steuert auch die Anzeige von Hinweisen auf Routen.

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

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

Meldung von Verkehrsbehinderungen während der aktiven Navigation

Im aktiven Navigationsmodus wird auf der Navigations-UI eine Schaltfläche angezeigt, mit der Nutzer neue Verkehrsbehinderungen auf ihrer Route melden können. Wenn ein Nutzer auf die Schaltfläche tippt, wird ein Menü mit den verfügbaren Arten von Verkehrsbehinderungen angezeigt, die gemeldet werden können. Von Nutzern eingereichte Meldungen werden von Google verarbeitet und können auf der Karte für andere Google Maps- und Navigation SDK-Nutzer angezeigt werden.

Schaltfläche „Berichte“ Menü „Berichte“

Standardmäßige Schaltfläche zum Melden von Verkehrsbehinderungen ein- oder ausblenden

Mit setReportIncidentButtonEnabled können Sie die Sichtbarkeit der standardmäßigen Schaltfläche zum Melden von Verkehrsbehinderungen 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);

Benutzerdefinierte Schaltfläche zum Melden von Verkehrsbehinderungen hinzufügen

Anstelle der standardmäßigen Schaltfläche zum Melden von Verkehrsbehinderungen können Sie der Navigations-UI eine benutzerdefinierte Schaltfläche zum Melden von Verkehrsbehinderungen hinzufügen. Wenn der Nutzer auf die benutzerdefinierte Schaltfläche klickt, können Sie die Anzeige des Menüs zum Melden von Verkehrsbehinderungen auslösen, indem Sie die showReportIncidentsPanel Methode aufrufen. Bevor Sie eine benutzerdefinierte Schaltfläche zum Melden von Verkehrsbehinderungen hinzufügen, prüfen Sie mit isIncidentReportingAvailable, ob sich die App in der aktiven Navigation befindet und der Nutzer sich in einem Land befindet, in dem das Melden von Verkehrsbehinderungen aktiviert ist. Wenn eine dieser Bedingungen nicht erfüllt ist, wird das Menü zum Melden von Verkehrsbehinderungen 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 Echtzeit-Verkehrsbehinderungen berücksichtigen, um Konflikte zu vermeiden.

Positionierung der Schaltfläche zum Melden von Verkehrsbehinderungen

Standardmäßig befindet sich die Schaltfläche zum Melden von Verkehrsbehinderungen in der unteren Ecke der Karte, rechts bei linksläufigen Sprachen und links bei rechtsläufigen Sprachen. Wenn Sie die Schaltfläche zum Melden von Verkehrsbehinderungen verschieben müssen, um Platz für benutzerdefinierte UI-Elemente zu schaffen, fügen Sie ein BOTTOM_END_BELOW oder FOOTER benutzerdefiniertes Steuerelement 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 sichergestellt, dass alle vom Navigation SDK angezeigten Benachrichtigungen während der Anzeige ordnungsgemäß über Ihre benutzerdefinierten UI-Elemente gelegt werden. Wenn Sie keine benutzerdefinierten Steuerelemente verwenden können, verwalten Sie potenzielle UI-Konflikte mit der Prompt Visibility API.

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 wird ein Listener hinzugefügt, 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 Elemente für Echtzeit-Verkehrsbehinderungen empfangen, z. B. Infokarten, Benachrichtigungen und das Menü zum Melden von Verkehrsbehinderungen, 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)