Najczęstsze pytania
Szczegóły usługi
- Jak należy wyświetlać powiadomienie o Warunkach korzystania z pakietu Navigation SDK?
- W jakich językach są dostępne wskazówki głosowe?
- Czy kierunek jest zachowywany, gdy kierowca wychodzi z trybu nawigacji?
- Czy linie łamane są dostępne podczas rozpoczynania lub zmieniania trasy?
- Czy użytkownicy aplikacji muszą mieć zainstalowane Mapy Google na urządzeniu mobilnym?
- Czy Navigation SDK może identyfikować parkingi w pobliżu restauracji i innych miejsc docelowych?
- Czy pakiet Navigation SDK pokazuje kierunek ruchu na pasach, gdy zbliżam się do punktu skrętu?
Problemy
- W Xcode 12 aplikacje nie są prawidłowo kompilowane na potrzeby symulatora. Jak rozwiązać ten problem?
GMSMapViewnie wczytuje się.
Sieć
Dane
- Czy przed rozpoczęciem trasy mogę pobrać wszystkie przystanki i miejsca docelowe?
- Czy szczegółowe wskazówki dojazdu są dostępne na początku trasy?
- Jak szacowany czas dotarcia na miejsce jest przekazywany użytkownikom aplikacji?
- Czy można użyć
RoadSnappedLocationProviderdo uzyskania bieżącej przyciągniętej lokalizacji kierowcy, jeśli nawigacja nie jest na pierwszym planie? - Czy pakiet Navigation SDK obsługuje geofencing?
- Czy mogę wyłączyć powiadomienia, gdy aplikacja do nawigacji działa w tle?
Dostosowywanie interfejsu
- Czy mogę oznaczyć najlepszą trasę kolorem?
- Czy pakiet Navigation SDK może wyświetlać szacowany czas dotarcia do miejsca docelowego?
- Jak mogę ukryć aktualizacje szacowanego czasu dotarcia na miejsce?
- Jakie opcje dostosowywania interfejsu są dostępne w przypadku kart nagłówka i stopki?
Routing
- Czy mogę podać kierowcy konkretną trasę lub usunąć trasy alternatywne?
- Czy mogę wyświetlić kierowcy inną etykietę miejsca docelowego niż domyślna lokalizacja miejsca docelowego?
- Czy mogę używać pakietu Navigation SDK do śledzenia odchyleń od zdefiniowanej ścieżki?
- Czy kierowca może wyjść z nawigacji bez pokonania całej trasy?
- Czy pakiet Navigation SDK obsługuje wyznaczanie tras i nawigację dla ciężarówek i dużych pojazdów?
Symulator
Przepływy pracy
Usługi mobilne
- Czym różni się korzystanie z pakietu Navigation SDK w przypadku klientów Mobility Services?
- Jak mogę sprawdzić, czy jestem klientem Mobility Services?
- Jak rozliczane jest korzystanie z pakietu Navigation SDK w przypadku klientów Mobility Services?
- Które interfejsy API Navigation SDK powinny być używane tylko przez klientów Mobility Services?
- Jeśli jestem klientem Mobility Services, czy mogę też używać implementacji Navigation SDK, która nie jest przeznaczona dla Mobility Services?
Szczegóły usługi
- Aplikacja musi wyświetlać okno z Warunkami korzystania z pakietu Navigation SDK, które każdy kierowca musi zaakceptować. W tym oknie kierowca może zaakceptować Warunki korzystania z usługi. Plik tekstowy z warunkami jest dołączony do pakietu Navigation SDK.
- W Androidzie użyj metody
NavigationApi.showTermsAndConditionsDialog, aby wyświetlić okno z warunkami. - W systemie iOS wywołaj
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName. - Wszystkie języki obsługiwane przez Mapy Google na komórki są automatycznie dostępne w pakiecie Navigation SDK. Urządzenie ma domyślny język systemu, którego aplikacja nie może zmienić. Aplikacja ma jednak dostęp do ponad 70 języków.
-
Tak. W Androidzie po uruchomieniu
LocationListenerdziała w tle. Aplikacja nadal przyciąga pozycję do drogi i utrzymuje kierunek.Aby w systemie iOS nadal otrzymywać w tle informacje o lokalizacji i kierunku, zaimplementuj przyciąganie do drogi i ustaw
allowsBackgroundLocationUpdatesnaYES. -
Tak. Gdy trasa zostanie utworzona lub zmieniona,
RouteChangeListenerudostępnia linie łamane. - Nie, pakiet Navigation SDK nie wymaga zainstalowania Map Google na urządzeniu mobilnym.
- Nie, pakiet Navigation SDK nie udostępnia obecnie tej funkcji.
- Tak. Kierunek ruchu jest dostępny i wyświetlany domyślnie.
Problemy
- W Xcode 12 aplikacje nie są prawidłowo kompilowane na potrzeby symulatora. Jak rozwiązać ten problem?
-
Aby rozwiązać ten problem, otwórz ustawienia kompilacji projektu Xcode i dodaj
arm64doExcluded Architecturestylko w przypadku kompilacji „iOS Simulator”.Więcej informacji znajdziesz w tym wątku na StackOverflow.
- GMSMapView nie wczytuje się.
-
Jeśli GMSMapView się nie wczytuje:
- Sprawdź, czy pakiet NavSDK jest włączony w konsoli Cloud.
- Jeśli pakiet Navigation SDK jest zainstalowany, ale Twój projekt nie korzysta z interfejsów API tego pakietu, usuń go z pliku binarnego.
Sieć
- Jak Navigation SDK radzi sobie ze słabym połączeniem?
- Pakiet Navigation SDK wstępnie zapisuje w pamięci podręcznej trasę każdej podróży. Wstępnie zapisane informacje obejmują informacje o trasie na 15–20 minut oraz alternatywne trasy na wypadek, gdyby kierowca zboczył z trasy. Pakiet Navigation SDK określa przybliżoną pozycję za pomocą GPS-a i czujników urządzenia.
- Czy jest dostępny tryb offline?
- Nie, pakiet Navigation SDK nie oferuje obecnie trybu offline, ale udostępnia wstępnie zapisane informacje o podróży.
Dane
- Czy mogę pobrać wszystkie przystanki/miejsca docelowe na trasie przed rozpoczęciem podróży?
-
Tak. Aby pobrać wskazówki dojazdu na Androidzie, wywołaj
Navigator.getRouteSegments().W iOS wywołaj funkcję
GMSNavigator.routeLegs(read). - Czy szczegółowe wskazówki dojazdu są dostępne na początku trasy?
- Tak. Pakiet Navigation SDK udostępnia listę segmentów trasy. Kierowca może też przesuwać palcem po karcie wskazówek w nagłówku, aby zobaczyć każdy manewr.
- Jak szacowany czas dotarcia na miejsce jest przekazywany użytkownikom aplikacji?
-
Aby przekazywać użytkownikom aplikacji informacje o szacowanym czasie dotarcia na miejsce, wykonaj te czynności na urządzeniu z Androidem:
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą
Navigator.getTimeAndDistanceList(). - Przekaż te informacje do aplikacji klienckiej tak samo jak w przypadku szacowanego czasu dotarcia kierowcy na miejsce.
Aby przekazać użytkownikom aplikacji informacje o szacowanym czasie dotarcia na miejsce, wykonaj te czynności w iOS:
- Pobierz odcinki podróży za pomocą
Navigator.getRouteSegments(). - Wywołaj
GMSNavigator.timeToNextDestinationdla każdego etapu podróży. - Przekaż informacje o czasie do aplikacji klienckiej, tak jak w przypadku szacowanego czasu dotarcia kierowcy na miejsce.
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą
-
Czy można użyć
RoadSnappedLocationProvider, aby uzyskać bieżącą lokalizację kierowcy, jeśli nawigacja nie jest na pierwszym planie? -
Tak. W Androidzie
RoadSnappedLocationProviderdomyślnie działa w tle.Aby nawigacja działała w tle na iOS, zaimplementuj detektor dla
GMSRoadSnappedLocationProviderListeneri ustaw właściwośćallowsBackgroundLocationUpdatesnaTRUE. - Czy pakiet Navigation SDK obsługuje geofencing?
-
Nie. W kontekście nawigacji
remainingTimeOrdistanceChangeListenerma przewagę nad geofence. Geofence może nie uwzględniać geometrii drogi i nie być wyśrodkowany na dokładnym punkcie, do którego kierowca jedzie.Możesz uzyskać podobną funkcjonalność, używając
remainingTimeOrdistanceChangeListener.- Ustaw próg, aby określić częstotliwość wywołań zwrotnych.
- Sprawdź pozostałą odległość do celu.
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. W miarę zmniejszania się odległości możesz aktualizować ten próg do mniejszej wartości i otrzymywać częstsze wywołania zwrotne. Następnie sprawdź pozostałą odległość, aby określić, czy jesteś wystarczająco blisko miejsca odbioru lub zwrotu.
W iOS zaimplementuj detektor
GMSNavigatorListener.didUpdateRemainingDistance, aby zarządzać odległością między powiadomieniami. - Czy mogę wyłączyć powiadomienia, gdy aplikacja Nawigacja działa w tle?
-
Tak. Na Androidzie do zarządzania powiadomieniami służy
Navigator.setHeadsUpNotificationEnabled. Ta metoda ma argument logiczny.FALSEwyłącza powiadomienia, aTRUEje włącza.W systemie iOS wyłącz powiadomienia w tle dotyczące lokalizacji przyciągniętych do drogi, ustawiając
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdatesna NO.Aby wyłączyć przetwarzanie w tle w przypadku innych powiadomień o lokalizacji, wywołaj
GMSNavigator.sendsBackgroundNotifications(NO).
Dostosowywanie interfejsu
- Czy mogę oznaczyć najlepszą trasę kolorem?
- Nie. Obecnie nie można oznaczać kolorami konkretnych opcji trasy.
- Czy pakiet Navigation SDK może wyświetlać szacowany czas dotarcia do miejsca docelowego?
-
Tak. W Androidzie użyj tych metod:
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą
Navigator.getTimeAndDistanceList(). - Ukryj szacowany czas dotarcia do bieżącego punktu orientacyjnego za pomocą
NavigationFragment.setEtaCardEnabled(false). - Wyświetlaj szacowany czas dotarcia na miejsce docelowe.
W iOS użyj tych opcji:
- Zadzwoń do firmy
GMSNavigator.routeLegs(read). - W ostatnim etapie wywołaj funkcję
GMSNavigator.timeToNextDestination. - Ukryj szacowany czas dotarcia do bieżącego punktu pośredniego, ustawiając
MSMapView.settings.navigationFooterEnabled=NOna FALSE. - Wyświetlaj szacowany czas dotarcia na miejsce docelowe.
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą
- Jak mogę ukryć aktualizacje szacowanego czasu dotarcia na miejsce?
-
Karty z szacowanym czasem dotarcia na miejsce możesz wyłączyć na te sposoby:
- Na Androidzie użyj
navigationView.setEtaCardEnabled(false). - W systemie iOS użyj
GMSMapView.settings.navigationFooterEnabled=NO.
- Na Androidzie użyj
-
W Androidzie do ustawiania koloru tła używasz
StylingOptions. Aby ukryć lub wyświetlić nagłówek i stopkę, użyj funkcji składowychsetHeaderEnabledisetFooterEnabledklasyNavigationFragment.W iOS użyj
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor, aby ustawić styl koloru tła. Aby ukryć lub wyświetlić nagłówek i stopkę, użyj właściwościnavigationFooterEnabledinavigationHeaderEnabledelementuGMSUISettings.
Routing
- Czy mogę podać kierowcy konkretną trasę lub usunąć trasy alternatywne?
- Nie. Domyślnie dostępnych jest kilka tras, a najszybsza ma priorytet. Możesz wpłynąć na domyślną trasę, dodając do żądania preferencje, takie jak „unikaj autostrad i opłat”. Dodanie punktów orientacyjnych również wpływa na trasę.
- Czy mogę wyświetlić użytkownikowi aplikacji inną etykietę miejsca docelowego niż domyślna lokalizacja miejsca docelowego?
-
Tak. W Androidzie utwórz
Markerz niestandardowym tytułem miejsca docelowego oraz szerokością i długością geograficzną. Pakiet Navigation SDK wyświetla niestandardowy tytuł i współrzędne na elemencieNavigationMap.W iOS tworzysz i wyświetlasz
GMSMarkerdla miejsca docelowego. - Czy mogę używać pakietu Navigation SDK do śledzenia odchyleń od zdefiniowanej ścieżki?
-
Tak. W Androidzie użyj
Navigator.setRouteChangedListener, aby otrzymywać powiadomienia o zmianie trasy lub zaleceniu nowej trasy:- Zarejestruj detektor, który sprawdza pozycję urządzenia na trasie, używając metody
Navigator.setRouteChangedListener. - Dodaj kod do modułu obsługi zdarzeń wywołania zwrotnego
onRouteChanged:- wysyłać do użytkownika aplikacji wiadomości z aktualnymi informacjami o szacowanym czasie dotarcia na miejsce i odległości.
- śledzić lokalizację urządzenia;
- [Opcjonalnie] Dodaj inne funkcje wymagane przez aplikację do obsługi sytuacji, gdy kierowca zboczy z wyznaczonej trasy.
W iOS użyj
GMSNavigatori jego detektorów, aby otrzymywać powiadomienia o zmianie trasy lub zaleceniu nowej trasy:- W kontrolerze widoku mapy zaimplementuj protokoły
GMSNavigatorListeneriGMSRoadSnappedLocationProviderListener. - Zaimplementuj
GMSNavigatorListener.navigatorDidChangeRoute. - Uzyskaj dostęp do nowej trasy, korzystając z właściwości
routeLegsicurrentRouteLegobiektuGMSNavigator.
- Zarejestruj detektor, który sprawdza pozycję urządzenia na trasie, używając metody
-
Tak. W Androidzie wywołaj metodę
Navigator.stopGuidance(), aby zatrzymać nawigację.W iOS wywołaj funkcję
GMSNavigator.clearDestinations. - Czy pakiet Navigation SDK obsługuje wyznaczanie tras i nawigację dla ciężarówek i dużych pojazdów?
-
Tak. Dzięki wyznaczaniu tras dla dużych pojazdów możesz przekazywać do pakietu Navigation SDK tokeny tras dla ciężarówek wygenerowane przez interfejs Routes API lub Route Optimization API. Pakiet SDK zapewnia szczegółowe wskazówki dojazdu z objaśnieniami trasy (wysokość, waga, materiały niebezpieczne i ograniczenia dotyczące ciężarówek) oraz zachowuje profil fizyczny pojazdu podczas dynamicznego wyznaczania trasy. Szczegółowe informacje znajdziesz w artykule Nawigacja po trasach dla dużych pojazdów.
Symulator
- Czy symulator obsługuje zmiany trasy?
-
Tak. W Androidzie wywołaj
simulateLocationsAlongNewRoute, aby zasymulować podróż, która obejmuje zmianę trasy. MetodasimulateLocationsAlongExistingRouteignoruje zmiany w istniejącej trasie.W iOS użyj
GMSLocationSimulator.simulateAlongNewRouteToDestinations, aby zasymulować podróż, która obejmuje zmianę trasy. Jeśli nie przewidujesz żadnych zmian tras, możesz użyćGMSLocationSimulator.simulateLocationsAlongExistingRoutelubGMSLocationSimulator.simulateAlongNewRouteToDestinations.
Przepływy pracy
- Jak odrzucić powiadomienie po zamknięciu aktywności zawierającej fragment nawigacji?
-
Powiadomienie o nawigacji pozostaje widoczne podczas nawigacji, gdy aktywność jest zamknięta. Gdy pojazd dotrze do celu, nawigacja się zatrzyma, a powiadomienie zniknie.
Aby obsługiwać kliknięcia powiadomienia, użyj
Navigator.startGuidance(intent resumeIntent). Zdarzenieresume intentjest wywoływane, gdy użytkownik aplikacji kliknie powiadomienie. ZwykleNavigator.startguidance(getIntent())jest wywoływany z głównego działania, które przywołuje działanie, gdy użytkownik aplikacji kliknie powiadomienie.
Usługi mobilne
Usługi Google Maps Platform Mobility Services oferują zestaw interfejsów API i pakietów SDK, które pomagają zaspokajać potrzeby firm transportowych i logistycznych. W przypadku klientów korzystających z usług mobilności pakiet Navigation SDK jest zwykle używany w połączeniu z powiązanymi usługami do optymalizacji tras, wysyłania, elementu śledzenia zadań, analityki floty i innych celów. W przypadku klientów korzystających z usług mobilności pakiet Navigation SDK jest też rozliczany inaczej. Więcej informacji znajdziesz w dokumentacji usług mobilności.
Usługi związane z mobilnością są dostępne tylko dla wybranych klientów. Aby uzyskać więcej informacji, skontaktuj się z przedstawicielem handlowym.
ReportBillableEvent. Metodę ReportBillableEvent powinni wywoływać tylko klienci korzystający z usług mobilności.
W pakiecie Navigation SDK jest kilka interfejsów API, które są przeznaczone tylko dla klientów Mobility Services rozliczanych przez Google na podstawie transakcji. Jeśli nie jesteś klientem Mobility Services, te metody nie będą działać:
Tak, klienci korzystający z usług mobilnych mogą używać zarówno implementacji Navigation SDK w usługach mobilnych, jak i implementacji poza usługami mobilnymi. W aplikacji możesz jednak używać tylko jednego typu implementacji naraz. Musisz też utworzyć nowy projekt w chmurze Google Cloud, konto rozliczeniowe i klucz interfejsu API, które będą oddzielone od tych, których używasz w implementacji usług mobilności. Więcej informacji znajdziesz w omówieniu konfiguracji pakietu Navigation SDK.
Aby dowiedzieć się więcej o korzystaniu z pakietu Navigation SDK bez usług mobilności, w tym o migracji aplikacji z jednego typu implementacji na inny, skontaktuj się z opiekunem klienta w Google.
Uwaga: jeśli nie jesteś klientem Mobility Services i chcesz dowiedzieć się więcej o kolekcji interfejsów API i pakietów SDK Mobility Services, skontaktuj się z zespołem sprzedaży Google Maps Platform.