Najczęstsze pytania
Szczegóły usługi
- Jak należy wyświetlać informację o Warunkach korzystania z pakietu Navigation SDK?
- W jakich językach dostępne są wskazówki głosowe?
- Czy kierunek jest zachowywany, gdy kierowca wyjdzie z trybu nawigacji?
- Czy podczas rozpoczynania lub zmieniania trasy dostępne są polilinie?
- Czy użytkownicy aplikacji muszą mieć zainstalowaną aplikację mobilną Mapy Google?
- Czy pakiet Navigation SDK może identyfikować parkingi w pobliżu restauracji i innych miejsc docelowych?
- Czy pakiet Navigation SDK wyświetla kierunek ruchu na pasach podczas zbliżania się do punktu skrętu?
Problemy
- W Xcode 12 aplikacje nie są prawidłowo kompilowane na potrzeby symulatora. Jak mogę to naprawić?
GMSMapViewnie wczytuje się.
Sieć
Dane
- Czy przed rozpoczęciem trasy mogę pobrać wszystkie przystanki/miejsca docelowe w podróży?
- Czy na początku trasy dostępna jest szczegółowa nawigacja?
- W jaki sposób szacowany czas dotarcia (ETA) jest przekazywany użytkownikom aplikacji?
- Czy element
RoadSnappedLocationProvidermoże służyć do uzyskiwania 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 Nawigacja działa w tle?
Dostosowywanie interfejsu
- Czy mogę oznaczyć kolorami najlepszą opcję trasy?
- Czy pakiet Navigation SDK może wyświetlać szacowany czas dotarcia do miejsca docelowego?
- Jak ukryć aktualizacje szacowanego czasu przyjazdu?
- 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 docelowa?
- Czy mogę używać pakietu Navigation SDK do śledzenia odchyleń od zdefiniowanej ścieżki?
- Czy kierowca może wyłączyć nawigację bez ukończenia trasy?
- Czy pakiet Navigation SDK obsługuje wyznaczanie tras i nawigację dla ciężarówek i dużych pojazdów?
Symulator
Przepływy pracy
- Jak odrzucić powiadomienie po zamknięciu aktywności zawierającej fragment nawigacji? (tylko Android)
Usługi mobilne
- Czym różni się korzystanie z pakietu Navigation SDK w przypadku klientów korzystających z usług mobilności?
- Jak sprawdzić, czy jestem klientem usług mobilnych?
- Jak rozliczany jest pakiet Navigation SDK w przypadku klientów korzystających z usług mobilności?
- Z których interfejsów API pakietu Navigation SDK powinni korzystać tylko klienci usług mobilności?
- Czy jeśli jestem klientem usług mobilnych, mogę też używać implementacji pakietu Navigation SDK, która nie jest związana z usługami mobilnymi?
Szczegóły usługi
- W aplikacji musi być zaimplementowane okno z informacją o Warunkach 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 dostarczany z pakietem Navigation SDK.
- Na Androidzie użyj metody
NavigationApi.showTermsAndConditionsDialog, aby wyświetlić okno z warunkami. - Na urządzeniu z iOS zadzwoń
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName. - Wszystkie języki obsługiwane przez Mapy Google na urządzenia mobilne 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. Po uruchomieniu
LocationListenerw Androidzie działa w tle. Aplikacja nadal będzie przyciągać pozycję do drogi i utrzymywać kierunek.Aby nadal otrzymywać aktualizacje lokalizacji dotyczące pozycji i kierunku w tle w iOS, zaimplementuj przyciąganie do drogi i ustaw wartość
allowsBackgroundLocationUpdatesnaYES. -
Tak. Gdy trasa zostanie utworzona lub zmieniona, interfejs
RouteChangeListenerudostępnia polilinie. - Nie, pakiet Navigation SDK nie wymaga zainstalowania na urządzeniu aplikacji Mapy Google na urządzenia mobilne.
- 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 się nie wczytuje.
-
Jeśli GMSMapView się nie wczytuje:
- Sprawdź, czy pakiet NavSDK jest włączony w konsoli Cloud.
- Jeśli pakiet Nav SDK jest zainstalowany, ale Twój projekt nie korzysta z interfejsów API Nav SDK, usuń go z pliku binarnego.
Sieć
- Jak pakiet Navigation SDK radzi sobie ze słabym połączeniem?
- Pakiet Navigation SDK wstępnie buforuje trasę dla każdej podróży. Wstępnie zapisane w pamięci podręcznej informacje obejmują dane o trasie na 15–20 minut oraz alternatywne trasy na wypadek, gdyby kierowca zboczył z trasy. Pakiet Navigation SDK przybliża 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. Zapewnia jednak wstępnie zapisane w pamięci podręcznej informacje o podróży.
Dane
- Czy przed rozpoczęciem trasy mogę pobrać wszystkie przystanki lub miejsca docelowe w podróży?
-
Tak. Aby pobrać wskazówki dojazdu na trasie w Androidzie, wywołaj funkcję
Navigator.getRouteSegments().Na urządzeniu z iOS wywołaj funkcję
GMSNavigator.routeLegs(read). - Czy na początku trasy dostępna jest szczegółowa nawigacja?
- Tak. Navigation SDK udostępnia listę segmentów trasy. Kierowca może też przesuwać palcem po karcie z wskazówkami w nagłówku, aby zobaczyć każdy manewr.
- Jak szacowany czas dotarcia jest przekazywany użytkownikom aplikacji?
-
Aby przekazać użytkownikom aplikacji informacje o szacowanym czasie dotarcia na miejsce na urządzeniach z Androidem:
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą funkcji
Navigator.getTimeAndDistanceList(). - Przekaż te informacje do aplikacji klienckiej, tak jak w przypadku szacowanego czasu dotarcia na miejsce kierowcy.
Aby przekazywać użytkownikom aplikacji informacje o szacowanym czasie dotarcia na miejsce na urządzeniach z iOS, wykonaj te czynności:
- Pobierz odcinki trasy za pomocą funkcji
Navigator.getRouteSegments(). - Zadzwoń pod numer
GMSNavigator.timeToNextDestinationna każdym etapie podróży. - Przekaż informacje o czasie do aplikacji klienta, tak jak w przypadku szacowanego czasu przyjazdu kierowcy.
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą funkcji
-
Czy za pomocą
RoadSnappedLocationProvidermożna uzyskać aktualną lokalizację kierowcy, jeśli nawigacja nie jest na pierwszym planie? -
Tak. Na Androidzie
RoadSnappedLocationProviderdomyślnie działa w tle.Aby w iOS nawigacja działała w tle, zaimplementuj odbiornik
GMSRoadSnappedLocationProviderListeneri ustaw wartość właściwościallowsBackgroundLocationUpdatesnaTRUE. - Czy pakiet Navigation SDK obsługuje geofencing?
-
Nie. W kontekście nawigacji
remainingTimeOrdistanceChangeListenerma przewagę nad geofencingiem. Geofence może nie uwzględniać geometrii drogi i może nie być wyśrodkowany w dokładnym punkcie, do którego kierowca nawiguje.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 celu.
Jeśli na przykład ustawisz próg na 100 m, wywołanie zwrotne nastąpi, gdy odległość od miejsca docelowego zmieni się o 100 m. W miarę zmniejszania się odległości możesz zmniejszyć ten próg, aby częściej otrzymywać wywołania zwrotne. Następnie sprawdź pozostałą odległość, aby określić, czy jesteś wystarczająco blisko miejsca odbioru lub dostawy.
W iOS zaimplementuj odbiornik
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 używaj
Navigator.setHeadsUpNotificationEnabled, aby zarządzać powiadomieniami. Ta metoda ma argument logiczny.FALSE– wyłącza powiadomienia;TRUE– włącza powiadomienia.W systemie iOS wyłącz powiadomienia w tle dotyczące lokalizacji przyciągniętych do drogi, ustawiając wartość
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdatesna NO.Aby wyłączyć przetwarzanie w tle w przypadku innych powiadomień o lokalizacji, zadzwoń pod numer
GMSNavigator.sendsBackgroundNotifications(NO).
Dostosowywanie interfejsu
- Czy mogę oznaczyć kolorami najlepszą opcję trasy?
- Nie. Kodowanie kolorami konkretnej opcji trasy nie jest obecnie obsługiwane.
- Czy pakiet Navigation SDK może wyświetlać szacowany czas dotarcia do miejsca docelowego?
-
Tak. Na urządzeniach z Androidem użyj tych metod:
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą funkcji
Navigator.getTimeAndDistanceList(). - Ukryj szacowany czas dotarcia do bieżącego punktu trasy za pomocą ikony
NavigationFragment.setEtaCardEnabled(false). - Wyświetl szacowany czas dotarcia do miejsca docelowego.
W iOS użyj tych ustawień:
- Zadzwoń do firmy
GMSNavigator.routeLegs(read). - W przypadku ostatniego etapu wywołaj funkcję
GMSNavigator.timeToNextDestination. - Ukryj szacowany czas dotarcia do bieżącego punktu pośredniego, ustawiając wartość
MSMapView.settings.navigationFooterEnabled=NOna FALSE. - Wyświetl szacowany czas dotarcia do miejsca docelowego.
- Pobierz czas i odległość dla wszystkich punktów pośrednich za pomocą funkcji
- Jak ukryć aktualizacje szacowanego czasu przyjazdu?
-
Karty z szacowanym czasem dotarcia możesz wyłączyć w ten sposób:
- Na Androidzie użyj
navigationView.setEtaCardEnabled(false). - Na urządzeniach z iOS używaj
GMSMapView.settings.navigationFooterEnabled=NO.
- Na Androidzie użyj
-
W Androidzie do ustawienia stylu koloru tła używa się
StylingOptions. Aby ukryć lub wyświetlić nagłówek i stopkę, użyj funkcji składowychsetHeaderEnabledisetFooterEnabledelementuNavigationFragment.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 podawanych jest kilka tras, a priorytet ma najszybsza z nich. Na trasę domyślną możesz wpływać, dodając do żądania preferencje, np. „unikaj autostrad i dróg płatnych”. Dodanie punktów pośrednich również wpływa na trasę.
- Czy mogę wyświetlać użytkownikowi aplikacji inną etykietę miejsca docelowego niż domyślna lokalizacja docelowa?
-
Tak. Na urządzeniu z Androidem utwórz
Markerz niestandardowym tytułem miejsca docelowego oraz szerokością i długością geograficzną. Pakiet SDK nawigacji wyświetla niestandardowy tytuł i współrzędne naNavigationMap.W systemie iOS tworzysz i wyświetlasz
GMSMarkerdla miejsca docelowego. - Czy mogę używać pakietu Navigation SDK do śledzenia odchyleń od wyznaczonej trasy?
-
Tak. Na urządzeniach z Androidem użyj
Navigator.setRouteChangedListener, aby otrzymywać powiadomienia o zmianach trasy lub nowych rekomendacjach:- Zarejestruj odbiornik, 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:- Wysyłanie do użytkownika aplikacji wiadomości z aktualnymi informacjami o szacowanym czasie dotarcia i odległości.
- śledzenie lokalizacji urządzenia;
- [opcjonalnie] Dodaj inne funkcje wymagane przez aplikację, aby obsługiwać sytuacje, w których kierowca zjedzie z wyznaczonej trasy.
W iOS użyj
GMSNavigatori jego odbiorników, aby otrzymywać powiadomienia o zmianie trasy lub poleceniu nowej trasy:- W kontrolerze widoku mapy zaimplementuj protokoły
GMSNavigatorListeneriGMSRoadSnappedLocationProviderListener. - Wdrożenie
GMSNavigatorListener.navigatorDidChangeRoute - Uzyskaj dostęp do nowej trasy za pomocą właściwości
routeLegsicurrentRouteLegobiektuGMSNavigator.
- Zarejestruj odbiornik, który sprawdza położenie urządzenia na trasie za pomocą metody
-
Tak. Na Androidzie wywołaj metodę
Navigator.stopGuidance(), aby zatrzymać nawigację.Na urządzeniu z 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. W przypadku wyznaczania tras dla dużych pojazdów (LVR) możesz przekazywać do pakietu Navigation SDK tokeny trasy dla ciężarówek wygenerowane przez interfejs Routes API lub Route Optimization API. Pakiet SDK zapewnia nawigację krok po kroku z informacjami o trasie (wysokość, waga, materiały niebezpieczne i ograniczenia dla ciężarówek) oraz utrzymuje profil fizyczny pojazdu podczas dynamicznego wyznaczania nowej trasy. Więcej informacji znajdziesz w artykule Wyznaczanie tras dla dużych pojazdów.
Symulator
- Czy symulator obsługuje zmiany trasy?
-
Tak. Na 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 trasy, 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. Zazwyczaj funkcjaNavigator.startguidance(getIntent())jest wywoływana z głównego działania, które jest ponownie wywoływane, gdy użytkownik aplikacji kliknie powiadomienie.
Usługi mobilne
Usługi mobilne Google Maps Platform to zbiór interfejsów API i pakietów SDK, które pomagają zaspokajać potrzeby przedsiębiorstw z branży transportowej i logistycznej. Klienci korzystający z usług mobilności zwykle używają pakietu Navigation SDK w połączeniu z powiązanymi usługami do optymalizacji tras, wysyłania zleceń, śledzenia zadań, analizy floty i innych celów. W przypadku klientów korzystających z usług mobilności pakiet SDK do nawigacji jest też rozliczany inaczej. Więcej informacji znajdziesz w dokumentacji usług mobilnych.
Usługi mobilności są dostępne tylko dla wybranych klientów. Aby uzyskać więcej informacji, skontaktuj się z przedstawicielem handlowym.
ReportBillableEvent. Tylko klienci korzystający z usług mobilnych powinni wywoływać metodę ReportBillableEvent.
W pakiecie Navigation SDK jest kilka interfejsów API, które są przeznaczone wyłącznie dla klientów usług mobilności, którzy są rozliczani przez Google za każdą transakcję. Jeśli nie jesteś klientem usług mobilności, następujące metody są środowiskiem bezobsługowym:
Tak, klienci Mobility Services mogą korzystać zarówno z implementacji pakietu Navigation SDK w ramach Mobility Services, jak i z implementacji niezwiązanych z tymi usługami. W aplikacji można 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 implementacji pakietu Navigation SDK innej niż usługi 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 usług mobilności i chcesz dowiedzieć się więcej o kolekcji interfejsów API i pakietów SDK usług mobilności, skontaktuj się z zespołem sprzedaży Google Maps Platform.