Najczęstsze pytania
Informacje o produkcie
- Jak wyświetlać informacje o Warunkach korzystania z pakietu SDK nawigacji?
- Jakie języki są obsługiwane przez wskazówki głosowe?
- Czy kierunek jazdy pozostaje utrzymany po wyjściu kierowcy z trybu nawigacji?
- Czy linie łamane są dostępne podczas rozpoczynania lub zmiany trasy?
- Czy użytkownicy aplikacji muszą mieć zainstalowane Mapy Google na komórki?
- Czy pakiet SDK nawigacji może wykrywać parkingi w pobliżu restauracji i innych miejsc docelowych?
- Czy pakiet SDK nawigacji pokazuje kierunek ruchu na pasach, gdy zbliża się do punktu skrętu?
Sieć
Dane
- Czy przed rozpoczęciem podróży mogę pobrać informacje o wszystkich przystankach i miejscach docelowych?
- Czy na początku trasy dostępne są szczegółowe wskazówki dojazdu?
- W jaki sposób użytkownicy aplikacji są informowani o szacowanym czasie przyjazdu?
- Czy można użyć aplikacji
RoadSnappedLocationProvider
do uzyskania aktualnej lokalizacji kierowcy, jeśli nawigacja nie działa na pierwszym planie? - Czy pakiet SDK nawigacji obsługuje geofencing?
- Czy mogę wyłączyć powiadomienia, gdy aplikacja Nawigacja działa w tle?
- Jak wyświetlić dziennik transakcji przechowywanych przez Google?
Dostosowywanie UI
- Czy mogę oznaczyć najlepszą opcję trasy kolorem?
- Czy pakiet SDK nawigacji może wyświetlać szacowany czas dotarcia na miejsce w miejscu docelowym?
- Jak mogę ukryć aktualizacje szacowanego czasu dotarcia?
- Jakie zmiany w interfejsie są dostępne w przypadku kart nagłówka i stopki?
Routing
- Czy mogę podać kierowcy konkretną trasę lub usunąć alternatywne trasy?
- Czy mogę pokazać kierowcy inną etykietę miejsca docelowego niż domyślna lokalizacja docelowa?
- Czy mogę używać pakietu SDK nawigacji, aby śledzić odchylenia od zdefiniowanej ścieżki?
- Czy kierowca może zakończyć nawigację bez ukończenia trasy?
Symulator
Przepływy pracy
Informacje o produkcie
- Aplikacja musi implementować okno dialogowe z informacją o warunkach korzystania z pakietu Navigation SDK, które każdy kierowca musi zaakceptować. To okno dialogowe umożliwia kierowcy zaakceptowanie Warunków korzystania z usługi. Plik tekstowy z warunkami jest udostępniany przez pakiet SDK nawigacji.
- Na urządzeniu z Androidem użyj metody
NavigationApi.showTermsAndConditionsDialog
, aby wyświetlić okno dialogowe z hasłami. - Na urządzeniu z iOS wywołaj
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - Wszystkie języki obsługiwane w Mapach Google na komórki są automatycznie dostępne w pakiecie SDK nawigacji. Urządzenie ma ustawiony domyślny język systemu i aplikacja nie może zmienić tego ustawienia. Aplikacja ma jednak dostęp do ponad 70 języków.
-
Tak. Na Androidzie po uruchomieniu
LocationListener
nadal działa w tle. Aplikacja nadal dostosowuje swoją pozycję i utrzymuje kierunek.Aby nadal otrzymywać informacje o lokalizacji i kierunku w tle na iOS, zaimplementuj funkcję przyciągania drogi i ustaw funkcję
allowsBackgroundLocationUpdates
naYES
. -
Tak. Podczas tworzenia lub zmiany trasy
RouteChangeListener
udostępnia linie łamane. - Nie, pakiet SDK nawigacji nie wymaga zainstalowania na urządzeniu aplikacji Mapy Google na komórki.
- Nie, obecnie pakiet SDK nawigacji nie zapewnia takiej funkcji.
- Tak. Kierunek ruchu jest dostępny i wyświetlany domyślnie.
Sieć
- Jak pakiet SDK nawigacji obsługuje słabe połączenia?
- Pakiet SDK nawigacji zapisuje w pamięci podręcznej trasę dla każdej podróży. W pamięci podręcznej znajdują się informacje o trasie z okresu 15–20 minut oraz informacje o trasach alternatywnych na wypadek zjechania kierowcy z trasy. Pakiet SDK nawigacji określa w przybliżeniu położenie przy użyciu odbiornika GPS urządzenia i czujników.
- Czy jest dostępny tryb offline?
- Nie, pakiet SDK nawigacji nie udostępnia obecnie trybu offline, ale udostępnia informacje o trasie w pamięci podręcznej.
Dane
- Czy przed rozpoczęciem podróży mogę pobrać informacje o wszystkich przystankach i miejscach docelowych?
-
Tak. Aby na urządzeniu z Androidem uzyskać wskazówki dojazdu na danej trasie, zadzwoń pod numer
Navigator.getRouteSegments()
.Na urządzeniu z iOS wywołaj
GMSNavigator.routeLegs(read)
. - Czy na początku trasy dostępne są szczegółowe wskazówki dojazdu?
- Tak. Pakiet Google Navigation SDK udostępnia listę segmentów trasy. Dodatkowo kierowca może przeglądać kartę wskazówek dojazdu w nagłówku, by zobaczyć każdy manewr.
- W jaki sposób użytkownicy aplikacji są informowani o szacowanym czasie dotarcia?
-
Na urządzeniu z Androidem wykonaj te czynności, aby przekazać użytkownikom aplikacji informacje o szacowanym czasie dotarcia na miejsce:
- Pobierz czas i odległość do wszystkich punktów pośrednich za pomocą funkcji
Navigator.getTimeAndDistanceList()
. - Przekaż te informacje do aplikacji klienckiej tak jak obecnie w przypadku szacowanego czasu dotarcia na miejsce sterownika.
Na urządzeniu z iOS wykonaj te czynności, aby przekazać użytkownikom aplikacji informacje o szacowanym czasie dotarcia na miejsce:
- Zdobądź nogi w podróży za pomocą
Navigator.getRouteSegments()
. - Zadzwoń pod numer
GMSNavigator.timeToNextDestination
na każdy etap podróży. - Przekaż informacje o czasie do aplikacji klienckiej tak jak obecnie w przypadku szacowanego czasu dotarcia na miejsce.
- Pobierz czas i odległość do wszystkich punktów pośrednich za pomocą funkcji
-
Czy można użyć funkcji
RoadSnappedLocationProvider
do uzyskania aktualnej lokalizacji kierowcy, jeśli nawigacja nie działa na pierwszym planie? -
Tak. Na Androidzie
RoadSnappedLocationProvider
domyślnie działa w tle.Aby nawigacja w tle działała nadal w tle, w iOS zaimplementuj przedstawiciela dla
GMSRoadSnappedLocationProviderDelegate
i ustaw właściwośćallowsBackgroundLocationUpdates
naTRUE
. - Czy pakiet SDK nawigacji obsługuje geofencing?
-
Nie. W kontekście nawigacji
remainingTimeOrdistanceChangeListener
ma przewagę nad prostą geofencingem. Geofence nie uwzględnia geometrii drogi, przez co kierowca może nie być wyśrodkowany na tym punkcie, do którego kieruje kierowca.Możesz przybliżyć tę funkcję za pomocą właściwości
remainingTimeOrdistanceChangeListener
.- Ustaw próg, aby określić częstotliwość wywołań zwrotnych.
- Sprawdź pozostały dystans do miejsca docelowego.
Jeśli na przykład ustawisz próg na 100 m, otrzymasz wywołanie zwrotne, gdy odległość do miejsca docelowego zmieni się o 100 m. Gdy odległość się zmniejszy, możesz zaktualizować ten próg na mniejszą wartość, aby otrzymywać częściej wywołania zwrotne. Następnie sprawdź pozostały dystans, aby ustalić, czy jesteś wystarczająco blisko miejsca odbioru/wysyłki.
W iOS zaimplementuj przedstawiciela
GMSNavigatorDelegate.didUpdateRemainingDistance
, aby zarządzać odległością między powiadomieniami. - Czy mogę wyłączyć powiadomienia, gdy aplikacja do nawigacji działa w tle?
-
Tak. Na urządzeniu z Androidem powiadomienia możesz kontrolować za pomocą
Navigator.setHeadsUpNotificationEnabled
. Ta metoda ma argument logiczny.FALSE
wyłącza powiadomienia;TRUE
włącza je.W iOS wyłącz powiadomienia w tle dla lokalizacji wyłączonych z dróg, ustawiając dla opcji
GMSRoadSnappedLocationProviderDelegate.allowsBackgroundLocationUpdates
wartość NIE.Aby wyłączyć przetwarzanie w tle innych powiadomień o lokalizacji, zadzwoń pod numer
GMSNavigator.sendsBackgroundNotifications(NO)
. -
Rejestrator transakcji śledzi odbiory i dostawy za pomocą unikalnego identyfikatora, który Google rejestruje na potrzeby rozliczeń. Więcej informacji znajdziesz w instrukcjach testowania implementacji na Twojej platformie:
Informacje o kodowaniu transakcji rozliczeniowych znajdziesz w artykule Transakcje podlegające rozliczeniu.
Dostosowywanie UI
- Czy mogę oznaczyć kolorem najlepszą opcję trasy?
- Nie. Oznaczanie konkretnej opcji trasy kolorami nie jest obecnie obsługiwane.
- Czy pakiet SDK do nawigacji może wyświetlać szacowany czas dotarcia na miejsce w miejscu docelowym?
-
Tak. W Androidzie użyj tych metod:
- Pobierz czas i odległość do wszystkich punktów pośrednich za pomocą funkcji
Navigator.getTimeAndDistanceList()
. - Ukryj szacowany czas dotarcia bieżącego punktu na trasie za pomocą
NavigationFragment.setEtaCardEnabled(false)
. - Renderuj ostateczny docelowy szacowany czas dotarcia na miejsce.
W iOS użyj tych elementów:
- Zadzwoń do firmy
GMSNavigator.routeLegs(read)
. - Ostatnim etapem wywołaj
GMSNavigator.timeToNextDestination
. - Ukryj szacowany czas dotarcia bieżącego punktu na trasie za pomocą wartości od
MSMapView.settings.navigationFooterEnabled=NO
do FAŁSZ. - Renderuj ostateczny docelowy szacowany czas dotarcia na miejsce.
- Pobierz czas i odległość do wszystkich punktów pośrednich za pomocą funkcji
- Jak mogę ukryć aktualizacje o szacowanym czasie dotarcia?
-
Karty z szacowanym czasem dotarcia możesz wyłączyć, korzystając z tych metod:
- Na urządzeniu z Androidem użyj aplikacji
navigationView.setEtaCardEnabled(false)
. - Na urządzeniu z iOS użyj
GMSMapView.settings.navigationFooterEnabled=NO
.
- Na urządzeniu z Androidem użyj aplikacji
-
Na Androidzie styl tła ustawiasz za pomocą
StylingOptions
. Aby ukryć lub wyświetlić nagłówek i stopkę, użyj funkcjisetHeaderEnabled
isetFooterEnabled
właściwościNavigationFragment
.W systemie iOS użyj
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
, aby ustawić styl tła. Aby ukryć lub wyświetlić nagłówek i stopkę, użyj właściwościnavigationFooterEnabled
inavigationHeaderEnabled
właściwościGMSUISettings
.
Routing
- Czy mogę podać konkretną trasę kierowcy lub usunąć alternatywne trasy?
- Nie. Domyślnie dostępnych jest wiele tras, a najszybsza z nich ma priorytet. Możesz wpłynąć na trasę domyślną, dodając do swojej prośby ustawienia takie jak „unikanie autostrad i opłat”. Dodawanie punktów na trasie wpływa również na trasę.
- Czy mogę pokazać użytkownikowi aplikacji inną etykietę miejsca docelowego niż domyślna lokalizacja docelowa?
-
Tak. Na Androidzie utwórz
Marker
z niestandardowym tytułem miejsca docelowego oraz szerokością i długością geograficzną. Pakiet SDK nawigacji wyświetla niestandardowy tytuł i współrzędne w elemencieNavigationMap
.Na urządzeniu z iOS tworzysz i wyświetlasz
GMSMarker
jako miejsce docelowe. - Czy mogę użyć pakietu SDK nawigacji, aby śledzić odchylenia od zdefiniowanej ścieżki?
-
Tak. Na urządzeniu z Androidem możesz korzystać z
Navigator.setRouteChangedListener
, aby otrzymywać powiadomienia, gdy zmieni się trasa lub zostanie mu wskazana nowa trasa:- Zarejestruj detektor, który sprawdza położenie urządzenia na trasie, korzystając z metody
Navigator.setRouteChangedListener
. - Dodaj kod do modułu obsługi zdarzeń wywołania zwrotnego
onRouteChanged
:- Wyślij do użytkownika aplikacji wiadomość z aktualnym szacowanym czasem dotarcia i informacjami o odległości.
- Śledzenie lokalizacji urządzenia.
- [opcjonalnie] Dodaj inne funkcje wymagane przez aplikację do działania, gdy kierowca porusza się poza wytyczoną trasą.
W systemie iOS za pomocą aplikacji
GMSNavigator
i jej przedstawicieli możesz otrzymywać powiadomienia, gdy zmieni się trasa lub zostanie mu wskazana nowa trasa:- W kontrolerze widoku mapy wdróż protokół
GMSNavigatorDelegate
i protokółGMSRoadSnappedLocationProviderDelegate
. - Wdróż
GMSNavigatorDelegate.navigatorDidChangeRoute
. - Dotrzyj do nowej trasy, korzystając z właściwości
routeLegs
icurrentRouteLeg
obiektuGMSNavigator
.
- Zarejestruj detektor, który sprawdza położenie urządzenia na trasie, korzystając z metody
-
Tak. Na urządzeniu z Androidem wywołaj metodę
Navigator.stopGuidance()
, aby zatrzymać nawigację.Na urządzeniu z iOS wywołaj
GMSNavigator.clearDestinations
.
Symulator
- Czy symulator obsługuje zmianę trasy?
-
Tak. Na urządzeniu z Androidem wywołaj
simulateLocationsAlongNewRoute
, aby przeprowadzić symulację podróży ze zmianą trasy. MetodasimulateLocationsAlongExistingRoute
ignoruje zmiany w istniejącej trasie.Na urządzeniu z iOS użyj
GMSLocationSimulator.simulateAlongNewRouteToDestinations
, aby przeprowadzić symulację podróży ze zmianą trasy. Jeśli nie przewidujesz żadnych zmian w trasie, możesz użyć właściwościGMSLocationSimulator.simulateLocationsAlongExistingRoute
lubGMSLocationSimulator.simulateAlongNewRouteToDestinations
.
Przepływy pracy
- Jak zamknąć powiadomienie po zamknięciu działania zawierającego fragment nawigacyjny?
-
Powiadomienie nawigacyjne pozostaje widoczne podczas nawigacji, gdy aktywność jest zamknięta. Gdy pojazd dotrze do miejsca docelowego, Nawigacja zatrzymuje się, a powiadomienie znika.
Aby obsługiwać kliknięcia powiadomienia, użyj funkcji
Navigator.startGuidance(intent resumeIntent)
. Tagresume intent
uruchamia się, gdy użytkownik aplikacji kliknie powiadomienie. Zwykle funkcjaNavigator.startguidance(getIntent())
jest wywoływana z głównej aktywności, która zapamiętuje to działanie, gdy użytkownik aplikacji kliknie powiadomienie.