Konfigurowanie przerw w transmisji w czasie rzeczywistym
Przerwy w czasie rzeczywistym to zbiór funkcji, które ostrzegają użytkowników o przerwach na trasie i umożliwiają im zgłaszanie i weryfikowanie napotkanych przerw. Przykłady zakłóceń to wypadki drogowe, korki, obecność fotoradarów i policji, roboty drogowe, zamykanie pasów ruchu oraz niektóre warunki pogodowe. Na tej stronie znajdziesz informacje o funkcjach zakłóceń w czasie rzeczywistym i ich opcjach konfiguracji, w tym o uwagach dotyczących aplikacji, które korzystają z niestandardowych interfejsów nawigacji.
Funkcje zakłóceń w czasie rzeczywistym
Pakiet SDK do nawigacji obejmuje te funkcje zakłóceń w czasie rzeczywistym, które są częścią podstawowej nawigacji:- Interaktywne oznaczenia przerw w funkcjonowaniu na trasach.
- Automatyczne alerty o przerwaniu z głosowaniem podczas aktywnej nawigacji.
- Zgłaszanie zakłóceń podczas aktywnej nawigacji.
Te funkcje można konfigurować i są domyślnie włączone. W poniższych sekcjach znajdziesz więcej informacji o funkcjach i dostępnych opcjach konfiguracji.
Interaktywne ostrzeżenia o zakłóceniach na trasach
Gdy aplikacja wyświetla trasę w przeglądzie lub podczas aktywnej nawigacji, wszelkie bieżące zakłócenia są wyświetlane jako objaśnienia wzdłuż trasy. W ramkach znajdują się ikony wskazujące rodzaj zakłócenia.

Możesz kontrolować wyświetlanie informacji o zakłóceniach na trasach za pomocą shouldDisplayPrompts
, która kontroluje też wyświetlanie automatycznych alertów, gdy użytkownik zbliża się do miejsca wystąpienia zakłócenia.
mapView.navigator.shouldDisplayPrompts = true
Wyświetlanie szczegółów przerwy po kliknięciu przez użytkownika etykiety
Użytkownicy mogą kliknąć powiadomienie, aby wyświetlić kartę informacyjną z dodatkowymi informacjami na temat zakłócenia, w tym rodzajem zakłócenia, czasem ostatniego zgłoszenia i w niektórych przypadkach opcją głosowania na temat tego, czy zakłócenie nadal występuje. W zależności od tego, czy użytkownik korzysta z aktywnej nawigacji, mogą wyświetlać się 2 rodzaje kart informacyjnych. Opcje konfiguracji różnią się w zależności od typu karty.
karty z informacjami na mapie nawigacyjnej przed rozpoczęciem aktywnej nawigacji;
Gdy użytkownik kliknie przycisk na podsumowaniu trasy przed rozpoczęciem aktywnej nawigacji, pojawi się karta informacyjna z dodatkowymi informacjami o przerwie.

Możesz kontrolować, czy użytkownicy mogą klikać informacje o zakłóceniach na stronie podsumowania trasy, aby wyświetlić więcej informacji. Użyj do tego showsIncidentCards
.
mapView.settings.showsIncidentCards = true
karty z informacjami w ramach aktywnej nawigacji,
Gdy podczas aktywnej nawigacji na trasie pojawi się komunikat o zakłóceniu, użytkownicy mogą go kliknąć, aby wyświetlić kartę z dodatkowymi informacjami na temat zakłócenia, w tym jego rodzajem i czasem ostatniego zgłoszenia, a także przyciskami umożliwiającymi zagłosowanie, czy zakłócenie 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 użytkownikom pakietu SDK Nawigacji. Mogą też służyć do określenia, czy nadal wyświetlać zakłócenie.

Możesz kontrolować wyświetlanie i możliwość dotknięcia powiadomień o przerwie w funkcjonowaniu podczas aktywnej nawigacji za pomocą shouldDisplayPrompts
, które kontroluje też wyświetlanie powiadomień na trasie i wyświetlanie automatycznych alertów, gdy użytkownik zbliża się do miejsca przerwy w funkcjonowaniu.
mapView.navigator.shouldDisplayPrompts = true
Automatyczne alerty o przerwie z głosowaniem podczas aktywnej nawigacji
Podczas aktywnej nawigacji, gdy użytkownik zbliża się do miejsca zakłócenia na trasie, wyświetla się komunikat z informacjami o zakłóceniu i przyciskami do głosowania, czy zakłócenie nadal występuje. Głosy przesłane przez użytkowników są przetwarzane przez Google i mogą być wyświetlane na mapie dla innych użytkowników Map Google i pakietu SDK nawigacji, a także służyć do określenia, czy nadal wyświetlać zakłócenie.

Wyświetlanie alertów podczas aktywnej nawigacji możesz skonfigurować za pomocą ustawienia shouldDisplayPrompts
, które kontroluje też wyświetlanie wywołań wzdłuż trasy.
mapView.navigator.shouldDisplayPrompts = true
Zgłaszanie zakłóceń podczas aktywnej nawigacji
W trybie aktywnej nawigacji w interfejsie nawigacji pojawia się przycisk, który umożliwia użytkownikom zgłaszanie nowych zakłóceń na trasie. Gdy użytkownik kliknie przycisk, pojawi się menu z dostępnymi typami zakłóceń do zgłoszenia. Zgłoszenia przesyłane przez użytkowników są przetwarzane przez Google i mogą być wyświetlane na mapie innym użytkownikom pakietu SDK Map Google i Nawigacji.


Za pomocą opcji navigationReportIncidentButtonEnabled
możesz skonfigurować widoczność przycisku zgłaszania podczas aktywnej nawigacji.
// Enables the incident reporting FAB to show in situations where incident // reporting is possible. mapView.settings.navigationReportIncidentButtonEnabled = true
Praca z niestandardowymi interfejsami nawigacji
Jeśli implementacja pakietu SDK nawigacji zawiera niestandardowe elementy interfejsu użytkownika, musisz wziąć pod uwagę elementy zakłóceń w czasie rzeczywistym, aby uniknąć konfliktów.
Umieszczenie przycisku raportowania
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 chcesz przenieść przycisk raportowania, aby zrobić miejsce na niestandardowe elementy interfejsu, użyjbottomTrailingButtonsLayoutGuide
.
Swift
// Create a new layout guide let topRightLayoutGuide = UILayoutGuide() self.view.addLayoutGuide(topRightLayoutGuide) // Activate constraints using fixed constants here as an example // assuming the current reporting button is of fixed height topRightLayoutGuide.topAnchor.constraint(equalTo: _mapView.navigationHeaderLayoutGuide.bottomAnchor, constant: 50).isActive = true topRightLayoutGuide.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor, constant: -14).isActive = true // Assign the layout guide _mapView.bottomTrailingButtonsLayoutGuide = topRightLayoutGuide // Create an alternate layout guide to use when the header and the footer are not full width let topRightAlternateLayoutGuide = UILayoutGuide() self.view.addLayoutGuide(topRightAlternateLayoutGuide) // Activate constraints using fixed constants here as an example // assuming the current RTD button is of fixed height topRightAlternateLayoutGuide.topAnchor.constraint(equalTo: _mapView.navigationHeaderLayoutGuide.bottomAnchor, constant: 20).isActive = true topRightAlternateLayoutGuide.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor, constant: -10).isActive = true // Assign the layout guide _mapView.bottomTrailingButtonsAlternateLayoutGuide = topRightAlternateLayoutGuide
Objective-C
// Create a new layout guide UILayoutGuide *topRightLayoutGuide = [[UILayoutGuide alloc] init]; [self.view addLayoutGuide:topRightLayoutGuide]; // Activate constraints using fixed constants here as an example // assuming the current RTD button is of fixed height [[topRightLayoutGuide.topAnchor constraintEqualToAnchor:_mapView.navigationHeaderLayoutGuide.bottomAnchor constant:50] setActive:YES]; [[topRightLayoutGuide.trailingAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.trailingAnchor constant:-14] setActive:YES]; // Assign the layout guide _mapView.bottomTrailingButtonsLayoutGuide = topRightLayoutGuide; // Create an alternate layout guide to use when the header and the footer are not full width UILayoutGuide *topRightAlternateLayoutGuide = [[UILayoutGuide alloc] init]; [self.view addLayoutGuide:topRightAlternateLayoutGuide]; // Activate constraints using fixed constants here as an example // assuming the current RTD button is of fixed height [[topRightAlternateLayoutGuide.topAnchor constraintEqualToAnchor:_mapView.navigationHeaderLayoutGuide.bottomAnchor constant:50] setActive:YES]; [[topRightAlternateLayoutGuide.trailingAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.trailingAnchor constant:-14] setActive:YES]; // Assign the layout guide _mapView.bottomTrailingButtonsAlternateLayoutGuide = topRightAlternateLayoutGuide;
Prompt Visibility API (eksperymentalny)
Interfejs API do wyświetlania promptów pomaga uniknąć konfliktów między elementami interfejsu generowanymi przez pakiet SDK nawigacji a Twoimi niestandardowymi elementami interfejsu. Aby to osiągnąć, dodaj odbiornika wywołania zwrotnego, który będzie wywoływany przed wyświetleniem elementu interfejsu pakietu SDK nawigacji i zaraz po jego usunięciu. 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.Swift
// Additional methods added to GMSNavigatorListener ... func navigatorWillPresentPrompt(_ navigator: GMSNavigator) { // Hide any sort of custom UI element. } func navigatorDidDismissPrompt(_ navigator: GMSNavigator) { // Show any sort of custom UI element. } ...
Objective-C
// Additional methods added to GMSNavigatorListener ... - (void)navigatorWillPresentPrompt:(GMSNavigator *)navigator { // Hide any sort of custom UI element. } - (void)navigatorDidDismissPrompt:(GMSNavigator *)navigator { // Show any sort of custom UI element. } ...