Najczęstsze pytania
Informacje o produkcie
- Jak powinny obowiązywać warunki korzystania z pakietu Navigation SDK powiadomienie o usłudze?
- Jakie języki są obsługiwane przez wskazówki głosowe?
- Czy łożysko zostaje utrzymane, gdy kierowca wyjdzie z trybu nawigacji?
- Czy linie łamane są dostępne przy uruchamianiu lub zmienisz trasę?
- Czy użytkownicy aplikacji muszą mieć Mapy Google ma urządzenie mobilne?
- Czy pakiet SDK nawigacji określić parking w pobliżu restauracji i innych miejsc docelowych?
- Czy pakiet SDK nawigacji wskazuje kierunek ruchu na pasach, gdy zbliżasz się do skrętu?
- Który pakiet SDK nawigacji Interfejsy API powinny być używane tylko przez klientów korzystających z usług mobilnych?
Problemy
Sieć
Dane
- Czy mogę pobrać wszystkie przystanków/miejsc docelowych na trasie przed rozpoczęciem podróży?
- Czy dostępne są szczegółowe wskazówki dojazdu na początku trasy?
- Jak jest szacowany czas przyjazdu (Szacowany czas dotarcia) do użytkowników aplikacji?
- Czy
RoadSnappedLocationProvider
można wykorzystać do uzyskania bieżącej lokalizacji przyciągniętej, jeśli nawigacja nie działa na pierwszym planie? - Czy pakiet SDK nawigacji obsługuje geofencing?
- Czy mogę wyłączyć powiadomienia, gdy czy aplikacja do nawigacji działa w tle?
Dostosowywanie interfejsu
- Czy mogę najlepiej kodować kolorami opcję trasy?
- Czy pakiet SDK nawigacji wyświetlać szacowany czas dotarcia na miejsce?
- Jak ukryć informacje o szacowanym czasie dotarcia?
- Jakie dostosowania interfejsu są dostępne na kartach nagłówka i stopki?
Routing
- Czy mogę podać konkretną trasę kierowcy lub usunąć trasy alternatywne?
- Czy mogę pokazać kierowcy inną etykietę? w przypadku miejsca docelowego niż w domyślnej lokalizacji docelowej?
- Czy mogę używać pakietu Navigation SDK śledzić odchylenia od określonej ścieżki?
- Czy kierowca może wyjść z nawigacji bez na całej trasie?
Symulator
Przepływy pracy
Informacje o produkcie
- Twoja aplikacja musi mieć zaimplementowane okno dialogowe z Warunkami korzystania z pakietu Navigation SDK zasad korzystania z usługi, które każdy kierowca musi zaakceptować. To okno dialogowe udostępnia sterownikowi oznacza możliwość zaakceptowania Warunków korzystania z usługi. Plik tekstowy z hasłami jest dostępny wraz z pakietem SDK nawigacji.
- Na Androidzie użyj
NavigationApi.showTermsAndConditionsDialog
spowoduje wyświetlenie okna dialogowego z terminami. - W iOS wywołaj
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
- Wszystkie języki obsługiwane przez Mapy Google na komórki są automatycznie dostępnych dla pakietu Navigation SDK. Na urządzeniu jest ustawiony domyślny język systemu i aplikacja nie może zmienić tego ustawienia. jednak aplikacja ma dostęp do ponad 70 języków.
-
Tak. Po uruchomieniu na Androidzie
LocationListener
w dalszym ciągu będzie które działają w tle. Aplikacja nadal przeszukuje drogę i utrzymuje to ukierunkowanie.Aby w systemie iOS dalej otrzymywać aktualizacje lokalizacji i kierunku w tle, zaimplementuj przyciąganie dróg
allowsBackgroundLocationUpdates
doYES
. -
Tak. Przy tworzeniu lub zmianie trasy
RouteChangeListener
udostępnia linie łamane. - Nie, pakiet Navigation SDK nie wymaga Map Google na komórki który ma być zainstalowany na urządzeniu.
- Nie. Pakiet Navigation SDK nie oferuje tej funkcji obecnie się znajdujesz.
- Tak. Kierunek ruchu jest dostępny i wyświetlany domyślnie.
- Który pakiet SDK nawigacji Interfejsy API powinny być używane tylko przez klientów korzystających z usług mobilnych?
-
W pakiecie Navigation SDK znajduje się kilka interfejsów API przeznaczonych do użytku wyłącznie dla klientów usług mobilnych, którzy są rozliczani przez Google na podstawie liczby transakcji. Jeśli nie jesteś klientem usług mobilnych, te metody nie są obsługiwane:
Problemy
- W Xcode 12 aplikacje nie są poprawnie kompilowane na potrzeby symulatora. Jak rozwiązać ten problem?
-
Aby rozwiązać ten problem, otwórz ustawienia kompilacji projektu Xcode i dodaj
arm64
doExcluded Architectures
dla „Symulatora iOS” tylko kompilacje.Więcej informacji znajdziesz w tym wątku w StackOverflow.
- Widok GMSMapView się nie wczytuje.
-
Jeśli obiekt GMSMapView nie zostanie wczytany:
- Sprawdź, czy pakiet NavSDK jest włączony w konsoli Cloud.
- Jeśli masz zainstalowany pakiet Nav SDK, ale Twój projekt nie korzysta z interfejsów Nav SDK API, usuń go z pliku binarnego.
Sieć
- Jak pakiet Navigation SDK radzi sobie ze słabym połączeniem?
- Pakiet Navigation SDK wstępnie zapisuje w pamięci podręcznej trasę w przypadku każdej podróży. Te informacje są przechowywane w pamięci podręcznej z informacjami o trasach, które są wysyłane przez 15-20 minut, oraz alternatywne trasy, na wypadek gdyby kierowca zjechał z trasy. Pakiet Navigation SDK określa przybliżoną pozycję na podstawie GPS-u urządzenia i i czujników.
- Czy jest dostępny tryb offline?
- Nie. Pakiet Navigation SDK nie oferuje tryb offline, ale pakiet SDK udostępnia informacje w pamięci podręcznej na wycieczkę.
Dane
- Czy przed rozpoczęciem podróży mogę pobrać informacje o wszystkich miejscach docelowych/przystanków na trasie i droga?
-
Tak. Aby uzyskać wskazówki dojazdu na urządzeniu z Androidem, użyj
Navigator.getRouteSegments()
W iOS zadzwoń pod
GMSNavigator.routeLegs(read)
. - Czy na początku trasy dostępne są szczegółowe wskazówki dojazdu?
- Tak. Lista segmentów trasy zapewnia pakiet Navigation SDK. Dodatkowo kierowca może przesunąć palcem po karcie wskazówek w nagłówku. aby zobaczyć każdy manewr.
- W jaki sposób użytkownicy aplikacji otrzymują informacje o szacowanym czasie dotarcia na miejsce?
-
Aby przekazać użytkownikom aplikacji informacje o szacowanym czasie dotarcia na miejsce na Androidzie, wykonaj te czynności:
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą
Navigator.getTimeAndDistanceList()
- Przekaż te informacje do aplikacji klienckiej co robimy dla szacowanego czasu dotarcia na miejsce.
W iOS wykonaj te czynności, aby przekazać użytkownikom aplikacji informacje o szacowanym czasie dotarcia na miejsce:
- Odczytaj nogi w trakcie podróży za pomocą
Navigator.getRouteSegments()
- Wywołaj
GMSNavigator.timeToNextDestination
na każdy etap podróży. - Przekierowuj informacje o czasie do aplikacji klienckiej co robimy dla szacowanego czasu dotarcia na miejsce.
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą
-
Czy
RoadSnappedLocationProvider
może posłużyć do uzyskania numeru kierowcy bieżącej lokalizacji przyciągniętej, jeśli nawigacja nie jest na pierwszym planie? -
Tak. W Androidzie
RoadSnappedLocationProvider
działa te ustawienia.Aby nawigacja w tle działała w iOS, zaimplementuj detektor dla
GMSRoadSnappedLocationProviderListener
i ustaw wartość odallowsBackgroundLocationUpdates
doTRUE
. - Czy pakiet Navigation SDK obsługuje geofencing?
-
Nie. W kontekście nawigacji
remainingTimeOrdistanceChangeListener
ma przewagę nad prostą geofencingem. Geofence może nie uwzględniać geometrii drogi i może nie być wyśrodkowany na dokładnym punkcie, kierowca korzysta z nawigacji.Możesz przybliżyć tę funkcję za pomocą
remainingTimeOrdistanceChangeListener
- Ustaw próg, aby określić częstotliwość wywołań zwrotnych.
- Sprawdź pozostałą odległość do miejsca docelowego.
Jeśli np. ustawisz próg na 100 m, Oddzwonimy, gdy zmieni się odległość do miejsca docelowego do 100 m. W miarę jak odległość się zmniejsza, możesz zmniejszyć próg dla Twojej firmy i otrzymywać częściej wywołania zwrotne. Następnie sprawdź pozostałą odległość do określić, czy jesteś wystarczająco blisko miejsca, w którym chcesz wsiąść lub wysiąść.
W iOS zaimplementuj detektor
GMSNavigatorListener.didUpdateRemainingDistance
by zarządzać odległością między powiadomieniami. - Czy mogę wyłączyć powiadomienia, gdy aplikacja Nawigacja działa w tle?
-
Tak. Na Androidzie użyj aplikacji
Navigator.setHeadsUpNotificationEnabled
, by zarządzać powiadomieniami. Ta metoda ma argument logiczny.FALSE
wyłącza powiadomienia;TRUE
włącza powiadomienia.Wyłącz powiadomienia w tle o lokalizacjach ograniczonych drogami w iOS ustawienie:
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
na NO.Aby wyłączyć przetwarzanie w tle dla innych powiadomień o lokalizacji, zadzwoń pod numer
GMSNavigator.sendsBackgroundNotifications(NO)
Dostosowywanie interfejsu
- Czy mogę oznaczyć najlepszą opcję trasy kolorem?
- Nie. Oznaczenie kolorem konkretnej opcji trasy nie jest obecnie obsługiwane.
- Czy pakiet SDK nawigacji może pokazać szacowany czas dotarcia do miejsca docelowego?
-
Tak. Na Androidzie użyj tych metod:
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą
Navigator.getTimeAndDistanceList()
- Ukryj szacowany czas dotarcia na miejsce bieżącego punktu na trasie za pomocą
NavigationFragment.setEtaCardEnabled(false)
- Renderuj ostateczny szacowany czas dotarcia na miejsce.
W iOS zastosuj:
- Zadzwoń do firmy
GMSNavigator.routeLegs(read)
. - Ostatnim etapem jest telefon,
GMSNavigator.timeToNextDestination
- Ukryj szacowany czas dotarcia na miejsce bieżącego punktu na trasie za pomocą
MSMapView.settings.navigationFooterEnabled=NO
na FAŁSZ. - Renderuj ostateczny szacowany czas dotarcia na miejsce.
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą
- Jak ukryć informacje o szacowanym czasie dotarcia?
-
Możesz je wyłączyć w ten sposób:
- Na Androidzie użyj aplikacji
navigationView.setEtaCardEnabled(false)
. - W iOS użyj
GMSMapView.settings.navigationFooterEnabled=NO
.
- Na Androidzie użyj aplikacji
-
Na urządzeniu z Androidem tło możesz ustawić za pomocą aplikacji
StylingOptions
stylizacji kolorów. Aby ukryć lub wyświetlić nagłówek i w stopce, użyj klawiszysetHeaderEnabled
isetFooterEnabled
funkcji członka grupyNavigationFragment
W iOS użyj
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
aby ustawić styl koloru tła. Aby ukryć lub wyświetlić nagłówek i stopkę użyj funkcjinavigationFooterEnabled
inavigationHeaderEnabled
właściwościGMSUISettings
.
Routing
- Czy mogę podać konkretną trasę? kierowcy czy usunąć trasy alternatywne?
- Nie. Domyślnie wyświetlanych jest kilka tras, a priorytet ma najszybsza trasa. Możesz zmienić trasę domyślną, dodając ustawienia, na przykład „Unikaj autostrady i opłaty”, na Twoją prośbę. Dodanie punktów pośrednich ma również wpływ na trasę.
- Czy mogę wyświetlić użytkownikowi aplikacji inną etykietę miejsca docelowego niż domyślna? lokalizacja docelowa?
-
Tak. W Androidzie utwórz plik
Marker
z atrybutem tytuł miejsca docelowego oraz szerokość i długość geograficzną. Pakiet Navigation SDK wyświetla niestandardowy tytuł i współrzędne. w:NavigationMap
.W iOS możesz utworzyć i wyświetlić
GMSMarker
dla miejsca docelowego. - Czy mogę używać pakietu Navigation SDK, aby śledzić odchylenia od zdefiniowanej ścieżki?
-
Tak. W Androidzie użyj aplikacji
Navigator.setRouteChangedListener
, aby: otrzymywać powiadomienia o zmianie trasy lub proponowaniu nowej trasy:- Zarejestruj detektor, który sprawdza położenie urządzenia na trasie
za pomocą metody
Navigator.setRouteChangedListener
. - Dodaj kod do modułu obsługi zdarzenia wywołania zwrotnego
onRouteChanged
:- Wyślij do użytkownika aplikacji wiadomość z aktualnymi informacjami o szacowanym czasie dotarcia i odległości.
- śledzić lokalizację urządzenia;
- [opcjonalnie] Dodaj inne funkcje wymagane przez aplikację. gdy kierowca zjedzie z wyznaczonej trasy.
W iOS użyj elementu
GMSNavigator
i jego detektorów, otrzymywać powiadomienia o zmianie trasy lub proponowaniu nowej trasy:- W kontrolerze widoku mapy zaimplementuj
GMSNavigatorListener
iGMSRoadSnappedLocationProviderListener
. - Wdrażaj
GMSNavigatorListener.navigatorDidChangeRoute
- Wejdź na nową trasę za pomocą:
routeLegs
i WłaściwościcurrentRouteLeg
komponentuGMSNavigator
.
- Zarejestruj detektor, który sprawdza położenie urządzenia na trasie
za pomocą metody
-
Tak. W Androidzie wywołaj metodę
Navigator.stopGuidance()
, aby zatrzymać nawigację.W iOS zadzwoń pod
GMSNavigator.clearDestinations
.
Symulator
- Czy symulator umożliwia zmianę trasy?
-
Tak. W Androidzie zadzwoń pod numer
simulateLocationsAlongNewRoute
, aby symulację podróży obejmującą zmianę trasy.simulateLocationsAlongExistingRoute
ignoruje zmiany na istniejącej trasie.W iOS użyj
GMSLocationSimulator.simulateAlongNewRouteToDestinations
aby symulować podróż obejmującą zmianę trasy. Jeśli nie będziesz mieć zmian trasy, można użyćGMSLocationSimulator.simulateLocationsAlongExistingRoute
lubGMSLocationSimulator.simulateAlongNewRouteToDestinations
Przepływy pracy
- Jak odrzucić powiadomienie po zamknięciu działania, które zawiera fragment nawigacji?
-
Powiadomienie o nawigacji pozostaje widoczne podczas nawigacji, po zakończeniu aktywności. Gdy pojazd znajdzie się na cel podróży, przystanki nawigacji oraz powiadomienie zniknie.
Aby obsługiwać kliknięcia powiadomienia, użyj
Navigator.startGuidance(intent resumeIntent)
.resume intent
uruchamia się, gdy użytkownik aplikacji kliknie powiadomienie. Zazwyczaj funkcjaNavigator.startguidance(getIntent())
jest wywoływana z główną aktywność, która przypomina aktywność, gdy użytkownik aplikacji kliknie powiadomienie.