Wybierz platformę: Android iOS

Konfigurowanie zakłóceń w czasie rzeczywistym

Zakłócenia w czasie rzeczywistym to zbiór funkcji, które ostrzegają użytkowników o zakłóceniach na trasie i umożliwiają im zgłaszanie i weryfikowanie napotkanych zakłóceń. Przykłady zakłóceń to wypadki drogowe, korki, obecność policji i fotoradarów, roboty drogowe, zamknięcia pasów ruchu i niektóre warunki pogodowe. Na tej stronie znajdziesz informacje o funkcjach zakłóceń w czasie rzeczywistym i ich opcjach konfiguracji, a także wskazówki dotyczące aplikacji, które korzystają z niestandardowych interfejsów nawigacji.

Funkcje dotyczące zakłóceń w czasie rzeczywistym

Pakiet Navigation SDK obejmuje te funkcje dotyczące zakłóceń w czasie rzeczywistym, które są częścią podstawowej funkcji nawigacji:

Te funkcje można skonfigurować i są one domyślnie włączone. Więcej informacji o funkcjach i dostępnych opcjach konfiguracji znajdziesz w kolejnych sekcjach.

Interaktywne powiadomienia o zakłóceniach na trasach

Gdy aplikacja wyświetla trasę, w podsumowaniu trasy lub podczas aktywnej nawigacji, wszelkie bieżące utrudnienia pojawiają się jako etykiety wzdłuż trasy. Wyjaśnienia zawierają ikonę wskazującą rodzaj zakłócenia.

Objaśnienia na trasach

Wyświetlanie wywołań dotyczących zakłóceń na trasach możesz kontrolować za pomocą ustawienia setTrafficPromptsEnabled, które wpływa też na wyświetlanie automatycznych alertów, gdy użytkownik zbliża się do zakłócenia.

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

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

Wyświetlanie szczegółów zakłóceń, gdy użytkownik kliknie wywołanie

Użytkownicy mogą kliknąć wywołanie, aby wyświetlić kartę informacyjną z dodatkowymi informacjami o zakłóceniu, w tym jego typem, czasem ostatniego zgłoszenia, a w niektórych przypadkach opcją głosowania, czy zakłócenie nadal występuje. Mogą się pojawić 2 rodzaje kart informacyjnych w zależności od tego, czy użytkownik korzysta z aktywnej nawigacji. Opcje konfiguracji różnią się w zależności od typu.

Karty informacyjne w przeglądach tras przed rozpoczęciem aktywnej nawigacji

Gdy użytkownik kliknie wywołanie w podsumowaniu trasy przed rozpoczęciem aktywnej nawigacji, pojawi się karta informacyjna z dodatkowymi informacjami o utrudnieniach.

Karta informacyjna Przegląd

Za pomocą parametru setTrafficIncidentCardsEnabled możesz kontrolować, czy użytkownicy mogą klikać wywołania zakłóceń na przeglądach tras, aby wyświetlać więcej informacji.

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

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

Karty informacyjne podczas aktywnej nawigacji

Gdy podczas aktywnej nawigacji wzdłuż trasy pojawi się wywołanie dotyczące utrudnień, użytkownicy mogą kliknąć to wywołanie, aby wyświetlić kartę informacyjną z dodatkowymi informacjami o utrudnieniach, w tym o ich rodzaju i czasie ostatniego zgłoszenia, a także przyciski do głosowania, czy utrudnienia nadal występują. Głosy przesłane przez użytkowników są przetwarzane przez Google i mogą być wyświetlane na mapie innym użytkownikom Map Google i pakietu SDK Navigation, a także służyć do określania, czy nadal wyświetlać informacje o utrudnieniach.

Karta informacji o aktywnej nawigacji

Wyświetlanie i możliwość kliknięcia powiadomień o utrudnieniach podczas aktywnej nawigacji możesz kontrolować za pomocą ustawienia setTrafficPromptsEnabled , które wpływa też na wyświetlanie powiadomień na trasachwyświetlanie automatycznych alertów, gdy użytkownik zbliża się do utrudnienia.

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

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

Automatyczne alerty o utrudnieniach z możliwością głosowania podczas aktywnej nawigacji

Podczas aktywnej nawigacji, gdy użytkownik zbliża się do utrudnienia na trasie, wyświetla się komunikat z informacjami o utrudnieniu i przyciskami do głosowania, czy utrudnienie nadal występuje. Głosy przesłane przez użytkowników są przetwarzane przez Google i mogą być wyświetlane na mapie innym użytkownikom Map Google i pakietu SDK Nawigacji, a także wykorzystywane do określania, czy nadal wyświetlać informacje o utrudnieniach.

Karta informacji o aktywnej nawigacji

Wyświetlanie alertów podczas aktywnej nawigacji możesz skonfigurować za pomocą parametru setTrafficPromptsEnabled , który kontroluje też wyświetlanie wskazówek na trasach.

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

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

Zgłaszanie utrudnień podczas aktywnej nawigacji

W trybie aktywnej nawigacji w interfejsie nawigacji pojawia się przycisk, który umożliwia użytkownikom zgłaszanie nowych utrudnień na trasie. Gdy użytkownik naciśnie przycisk, pojawi się menu z dostępnymi typami zakłóceń, które można zgłosić. Zgłoszenia przesyłane przez użytkowników są przetwarzane przez Google i mogą być wyświetlane na mapie innym użytkownikom Map Google i pakietu SDK do nawigacji.

Przycisk zgłaszania Menu raportowania

Wyświetlanie i ukrywanie przycisku raportowania standardowego

Widoczność standardowego przycisku raportowania podczas aktywnej nawigacji możesz skonfigurować za pomocą parametru setReportIncidentButtonEnabled .

// 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);

Dodawanie niestandardowego przycisku raportowania

Zamiast standardowego przycisku zgłaszania zakłóceń możesz dodać do interfejsu nawigacji przycisk niestandardowy. Gdy użytkownik kliknie przycisk niestandardowy, możesz wywołać wyświetlenie menu raportowania, wywołując metodę showReportIncidentsPanel. Zanim dodasz niestandardowy przycisk zgłaszania, sprawdź, czy aplikacja jest w aktywnej nawigacji, a użytkownik znajduje się w kraju, w którym zgłaszanie jest włączone. W tym celu wywołaj funkcję isIncidentReportingAvailable. Jeśli którykolwiek z tych warunków nie zostanie spełniony, menu zgłaszania się nie pojawi.

  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());
  

Praca z niestandardowymi interfejsami nawigacji

Jeśli Twoja implementacja pakietu Navigation SDK zawiera niestandardowe elementy interfejsu, musisz uwzględnić elementy zakłóceń w czasie rzeczywistym, aby uniknąć konfliktów.

Położenie przycisku zgłaszania

Domyślnie przycisk zgłaszania zakłóceń znajduje się w dolnym rogu mapy – po prawej stronie w przypadku języków pisanych od lewej do prawej i po lewej stronie w przypadku języków pisanych od prawej do lewej. Jeśli musisz przenieść przycisk zgłaszania, aby zrobić miejsce na niestandardowe elementy interfejsu, dodaj niestandardowy element sterujący BOTTOM_END_BELOW lub FOOTER, który przesunie przycisk w górę ekranu. Umieszczenie własnych niestandardowych interfejsów w niestandardowych elementach sterujących zapewnia też, że wszystkie komunikaty wyświetlane przez pakiet Navigation SDK będą prawidłowo nakładane na niestandardowe elementy interfejsu. Jeśli nie możesz używać niestandardowych elementów sterujących, użyj interfejsu Prompt Visibility API, aby zarządzać potencjalnymi konfliktami interfejsu.

Prompt Visibility API (eksperymentalny)

Interfejs Prompt Visibility API pomaga uniknąć konfliktów między elementami interfejsu wygenerowanymi przez Navigation SDK a własnymi elementami interfejsu niestandardowego. W tym celu dodaje on odbiornik, który otrzymuje wywołanie zwrotne, zanim pojawi się element interfejsu Navigation SDK, i gdy tylko zostanie on usunięty. Możesz otrzymywać wywołania zwrotne dotyczące elementów zakłóceń w czasie rzeczywistym, w tym kart informacyjnych, promptów i menu zgłaszania zakłóceń, a także innych powiadomień generowanych przez Navigation SDK.
// 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)