Najczęstsze pytania
Szczegóły usługi
- Jak należy wyświetlać powiadomienie o Warunkach korzystania z usługi w przypadku pakietu SDK do nawigacji?
- Które języki obsługuje nawigacja głosowa?
- Czy kierunek jest utrzymywany, gdy kierowca opuszcza tryb nawigacji?
- Czy linie wielowymiarowe są dostępne podczas tworzenia lub zmieniania trasy?
- Czy użytkownicy aplikacji muszą mieć zainstalowaną aplikację mobilną Mapy Google?
- Czy pakiet SDK do nawigacji może wskazywać parkingi w pobliżu restauracji i innych miejsc docelowych?
- Czy Navigation SDK pokazuje 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 rozwiązać ten problem?
GMSMapView
się nie wczytuje
Sieć
Dane
- Czy przed rozpoczęciem trasy mogę pobrać wszystkie przystanki/miejsca docelowe?
- 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 przybycia?
- Czy usługa
RoadSnappedLocationProvider
może być używana do uzyskania bieżącej lokalizacji kierowcy, jeśli nawigacja nie jest na pierwszym planie? - Czy pakiet SDK do nawigacji obsługuje geofencing?
- Czy mogę wyłączyć powiadomienia, gdy aplikacja Nawigacja działa w tle?
Dostosowywanie interfejsu
- Czy mogę oznaczyć kolorem najlepszą opcję trasy?
- Czy pakiet SDK do nawigacji może wyświetlać przewidywany czas dotarcia do miejsca docelowego?
- Jak mogę ukryć informacje o przewidywanym czasie dotarcia?
- Jakie opcje dostosowywania interfejsu są dostępne w przypadku kart nagłówka i stopki?
Routing
- Czy mogę podać kierowcy konkretną trasę lub usunąć alternatywne trasy?
- Czy mogę wyświetlić kierowcy inną etykietę miejsca docelowego niż domyślna lokalizacja miejsca docelowego?
- Czy mogę używać pakietu SDK do nawigacji do śledzenia odchyleń od zdefiniowanej ścieżki?
- Czy kierowca może zamknąć nawigację bez ukończenia trasy?
Symulator
Przepływy pracy
Usługi mobilności
- Czym różni się korzystanie z pakietu SDK do nawigacji w przypadku klientów usług mobilnych?
- Jak sprawdzić, czy jestem klientem Mobility Services?
- Jak naliczane są opłaty za pakiet SDK do nawigacji w przypadku klientów usług mobilnych?
- Których interfejsów API interfejsów Navigation SDK powinni używać tylko klienci Mobility Services?
- Czy jeśli jestem klientem Usług mobilnych, mogę też używać pakietu SDK Nawigacji w innej implementacji niż Usługi mobilne?
Szczegóły usługi
- Aplikacja musi zawierać okno z powiadomieniem o Warunkach korzystania z usługi pakietu SDK nawigacji, które musi zaakceptować każdy kierowca. To okno dialogowe umożliwia kierowcy zaakceptowanie Warunków korzystania z usługi. Pakiet SDK do nawigacji zawiera plik tekstowy z warunkami.
- Na urządzeniu z Androidem użyj metody
NavigationApi.showTermsAndConditionsDialog
, aby wyświetlić okno z warunkami. - Na iOS wybierz
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - Wszystkie języki obsługiwane przez Google Maps Mobile są automatycznie dostępne w przypadku pakietu SDK do nawigacji. Urządzenie ma domyślny język systemowy, którego aplikacja nie może zmienić. Aplikacja ma jednak dostęp do ponad 70 języków.
-
Tak. Na Androidzie aplikacja
LocationListener
działa w tle. Aplikacja nadal przypina pozycję do drogi i utrzymuje kierunek.W iOS, aby nadal otrzymywać aktualizacje lokalizacji pozycji i kierunku w tle, zastosuj funkcję przyciągania do drogi i ustaw wartość
allowsBackgroundLocationUpdates
naYES
. -
Tak. Gdy tworzysz lub zmieniasz trasę, usługa
RouteChangeListener
udostępnia linie wielokątne. - Nie. Pakiet SDK Nawigacji nie wymaga instalowania na urządzeniu aplikacji mobilnej Mapy Google.
- Nie, pakiet SDK Nawigacji nie obsługuje 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
arm64
doExcluded Architectures
tylko w przypadku kompilacji „iOS Simulator”.Więcej informacji znajdziesz w tym wątku na StackOverflow.
- Widok GMSMapView się nie wczytuje.
-
Jeśli widok GMSMapView się nie wczytuje:
- Sprawdź, czy pakiet SDK Nav jest włączony w konsoli Cloud.
- Jeśli pakiet SDK Nav jest zainstalowany, ale Twój projekt nie korzysta z interfejsów API pakietu SDK Nav, usuń go z pliku binarnego.
Sieć
- Jak pakiet SDK do nawigacji radzi sobie z problemami z połączeniem?
- Pakiet SDK do nawigacji wstępnie przechowuje w pamięci podręcznej trasę dla każdej podróży. Informacje w pamięci podręcznej obejmują informacje o trasie na 15–20 minut oraz alternatywne trasy na wypadek, gdyby kierowca zboczył z trasy. Pakiet SDK nawigacji określa przybliżoną pozycję za pomocą GPS-a urządzenia i czujników.
- Czy jest dostępny tryb offline?
- Nie, pakiet SDK Nawigacji nie oferuje obecnie trybu offline. Pakiet SDK udostępnia jednak wcześniej zapisane w pamięci podręcznej informacje dotyczące trasy.
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 funkcję
Navigator.getRouteSegments()
.Na urządzeniu z iOS zadzwoń pod numer
GMSNavigator.routeLegs(read)
. - Czy na początku trasy dostępne są wskazówki dojazdu zakręt po zakręcie?
- Tak. Pakiet SDK nawigacji udostępnia listę segmentów trasy. Poza tym kierowca może przesuwać kartę z kierunkami w nagłówku, aby zobaczyć każdy manewr.
- Jak użytkownicy aplikacji są informowani o przewidywanym czasie dotarcia?
-
Aby udostępnić użytkownikom aplikacji informacje o przewidywanym czasie dotarcia, wykonaj te czynności na urządzeniu z Androidem:
- Pobierz czas i odległość dla wszystkich punktów drogi za pomocą funkcji
Navigator.getTimeAndDistanceList()
. - Prześlij te informacje do aplikacji klienta tak, jak to robisz obecnie w przypadku przewidywanego czasu przybycia kierowcy.
Aby udostępnić użytkownikom aplikacji informacje o przewidywanym czasie dotarcia, wykonaj te czynności na iOS:
- Pobierz etapy podróży za pomocą
Navigator.getRouteSegments()
. - Zadzwoń pod numer
GMSNavigator.timeToNextDestination
po zakończeniu każdego etapu podróży. - Przesyłaj informacje o czasie do aplikacji klienta tak, jak to robisz obecnie w przypadku przewidywanego czasu przybycia kierowcy.
- Pobierz czas i odległość dla wszystkich punktów drogi za pomocą funkcji
-
Czy można użyć
RoadSnappedLocationProvider
do uzyskania bieżącej lokalizacji kierowcy, jeśli nawigacja nie jest na pierwszym planie? -
Tak. Na Androidzie aplikacja
RoadSnappedLocationProvider
domyślnie działa w tle.Aby na iOS nawigacja działała w tle, zaimplementuj listenera
GMSRoadSnappedLocationProviderListener
i ustaw właściwośćallowsBackgroundLocationUpdates
naTRUE
. - Czy pakiet SDK do nawigacji obsługuje geofencing?
-
Nie. W kontekście nawigacji
remainingTimeOrdistanceChangeListener
ma przewagę nad prostym geofencem. Geofence może nie uwzględniać geometrii drogi i być nieskierowany na punkt, do którego zmierza kierowca.Możesz z niej korzystać za pomocą funkcji
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, otrzymasz połączenie zwrotne, gdy odległość do miejsca docelowego zmieni się o 100 m. W miarę zmniejszania się odległości możesz zmniejszać ten próg do mniejszej wartości i otrzymywać częstsze połączenia zwrotne. Następnie sprawdź pozostały dystans, aby określić, czy jesteś wystarczająco blisko miejsca odbioru lub zwrotu.
W iOS zaimplementuj listenera
GMSNavigatorListener.didUpdateRemainingDistance
, aby zarządzać odstępem między powiadomieniami. - Czy mogę wyłączyć powiadomienia, gdy aplikacja Nawigacja działa w tle?
-
Tak. Na urządzeniu z Androidem możesz zarządzać powiadomieniami, korzystając z funkcji
Navigator.setHeadsUpNotificationEnabled
. Ta metoda ma argument typu logicznego.FALSE
wyłącza powiadomienia;TRUE
włącza powiadomienia.W iOS wyłącz powiadomienia w tle dla lokalizacji na mapie, ustawiając opcję
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
na NIE.Aby wyłączyć przetwarzanie w tle w przypadku innych powiadomień o lokalizacji, zadzwoń do
GMSNavigator.sendsBackgroundNotifications(NO)
.
Personalizacja interfejsu
- Czy mogę oznaczyć kolorem najlepszą opcję trasy?
- Nie. Obecnie nie można nadać koloru konkretnej opcji trasy.
- Czy pakiet SDK do nawigacji może wyświetlać szacowany czas dotarcia do miejsca docelowego?
-
Tak. Na urządzeniu z Androidem użyj jednej z tych metod:
- Użyj funkcji
Navigator.getTimeAndDistanceList()
, aby pobrać czas i odległość dla wszystkich punktów pośrednich. - Ukryj ETA bieżącego punktu docelowego, używając
NavigationFragment.setEtaCardEnabled(false)
. - Wyświetlanie czasu dojazdu do miejsca docelowego.
W iOS użyj:
- Zadzwoń do firmy
GMSNavigator.routeLegs(read)
. - Na ostatnim odcinku zadzwoń do
GMSNavigator.timeToNextDestination
. - Ustaw wartość
MSMapView.settings.navigationFooterEnabled=NO
na FALSE, aby ukryć szacowany czas dojazdu do bieżącego punktu kontrolnego. - Wyświetlanie czasu dojazdu do miejsca docelowego.
- Użyj funkcji
- Jak mogę ukryć aktualizacje szacowanego czasu dotarcia?
-
Możesz wyłączyć karty ETA za pomocą tych metod:
- Na Androidzie użyj
navigationView.setEtaCardEnabled(false)
. - W iOS użyj
GMSMapView.settings.navigationFooterEnabled=NO
.
- Na Androidzie użyj
-
Na Androidzie możesz użyć atrybutu
StylingOptions
, aby ustawić styl koloru tła. Aby ukryć lub wyświetlić nagłówek i stopkę, użyj funkcji członkowskichsetHeaderEnabled
isetFooterEnabled
klasyNavigationFragment
.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ścinavigationFooterEnabled
inavigationHeaderEnabled
obiektuGMSUISettings
.
Routing
- Czy mogę podać kierowcy konkretną trasę lub usunąć alternatywne trasy?
- Nie. Domyślnie podawane są liczne trasy, a priorytet ma najszybsza z nich. Możesz wpływać na domyślną trasę, dodając do swojej prośby preferencje, takie jak „omijaj autostrady i drogi płatne”. Dodanie punktów pośrednich również wpływa na trasę.
- Czy mogę wyświetlić użytkownikowi aplikacji inną etykietę miejsca docelowego niż domyślna lokalizacja docelowa?
-
Tak. Na urządzeniu z Androidem utwórz
Marker
z niestandardowym tytułem miejsca docelowego i współrzędnymi geograficznymi. Pakiet SDK nawigacji wyświetla tytuł niestandardowy i współrzędne naNavigationMap
.W iOS tworzysz i wyświetlasz
GMSMarker
dla miejsca docelowego. - Czy mogę używać pakietu SDK do nawigacji, aby śledzić odstępstwa od zdefiniowanej ścieżki?
-
Tak. Na Androidzie
Navigator.setRouteChangedListener
, aby otrzymywać powiadomienia o zmianie trasy lub rekomendacji nowej trasy:- Zarejestruj listenera, który sprawdza pozycję urządzenia na trasie, używając metody
Navigator.setRouteChangedListener
. - Dodaj kod do modułu obsługi wywołania zwrotnego
onRouteChanged
:- Wyślij wiadomość do użytkownika aplikacji z aktualnym szacowanym czasem dotarcia i informacjami o odległości.
- śledzić lokalizację urządzenia;
- [Opcjonalnie] Dodaj inne funkcje wymagane przez aplikację do obsługi sytuacji, gdy kierowca zjeżdża z przeznaczonej trasy.
W iOS użyj obiektu
GMSNavigator
i jego słuchaczy, aby otrzymywać powiadomienia o zmianie trasy lub rekomendacji nowej trasy:- W kontrolerze widoku mapy zaimplementuj protokół
GMSNavigatorListener
oraz protokółGMSRoadSnappedLocationProviderListener
. - Wdróż
GMSNavigatorListener.navigatorDidChangeRoute
. - Uzyskaj dostęp do nowej trasy, korzystając z właściwości
routeLegs
icurrentRouteLeg
usługiGMSNavigator
.
- Zarejestruj listenera, który sprawdza pozycję urządzenia na trasie, używając metody
-
Tak. Na Androidzie wywołaj metodę
Navigator.stopGuidance()
, aby zatrzymać nawigację.Na urządzeniu z iOS zadzwoń pod numer
GMSNavigator.clearDestinations
.
Symulator
- Czy symulator obsługuje zmiany trasy?
-
Tak. Na Androidzie wywołaj funkcję
simulateLocationsAlongNewRoute
, aby symulować podróż z zmianą trasy. MetodasimulateLocationsAlongExistingRoute
ignoruje zmiany w dotychczasowej trasie.Na iOS użyj
GMSLocationSimulator.simulateAlongNewRouteToDestinations
, aby symulować przejazd z zmianą trasy. Jeśli nie przewidujesz żadnych zmian trasy, możesz użyćGMSLocationSimulator.simulateLocationsAlongExistingRoute
lubGMSLocationSimulator.simulateAlongNewRouteToDestinations
.
Przepływy pracy
- Jak zamknąć powiadomienie po zamknięciu aktywności, która zawiera fragment nawigacji?
-
Powiadomienie nawigacji pozostaje widoczne podczas nawigacji, gdy aktywność jest zamknięta. Gdy pojazd dotrze do miejsca docelowego, nawigacja się zatrzyma, a powiadomienie zniknie.
Aby obsłużyć kliknięcia powiadomienia, użyj elementu
Navigator.startGuidance(intent resumeIntent)
. Aktywuje się, gdy użytkownik aplikacji kliknie powiadomienie.resume intent
Zazwyczaj metodaNavigator.startguidance(getIntent())
jest wywoływana z głównej metody Activity, która wywołuje metodę Activity, gdy użytkownik aplikacji kliknie powiadomienie.
Usługi mobilności
Usługi mobilności Google Maps Platform to zbiór interfejsów API i pakietów SDK, które pomagają spełniać potrzeby firm transportowych i logistycznych. W przypadku klientów korzystających z Mobility Services pakiet SDK Nawigacji jest zwykle używany w połączeniu z powiązanymi usługami do optymalizacji trasy, dysponowania, śledzenia zadań, analizy floty itp. Pakiet SDK do nawigacji jest też fakturowany inaczej w przypadku klientów usług mobilnych. Więcej informacji znajdziesz w dokumentacji Usług mobilnych.
Produkty mobilne są obecnie dostępne tylko dla wybranych klientów. Aby uzyskać więcej informacji, skontaktuj się z przedstawicielem ds. sprzedaży.
ReportBillableEvent
. Metodę ReportBillableEvent
powinni stosować tylko klienci Usług mobilnych.
W pakiecie SDK nawigacji jest kilka interfejsów API przeznaczonych tylko dla klientów Usług mobilnych, którzy są obciążani przez Google za każdą transakcję. Jeśli nie korzystasz z usług mobilnych, te metody nie będą działać:
Tak. Klienci Usług mobilnych mogą korzystać z implementacji pakietu SDK nawigacji zarówno w Usługach mobilnych, jak i poza nimi. W aplikacji możesz jednak używać tylko jednego typu implementacji naraz. Musisz też utworzyć nowy projekt Google Cloud, konto rozliczeniowe i klucz API, które będą odrębne od tych, których używasz w ramach implementacji usług mobilnych. Więcej informacji znajdziesz w omówieniu konfiguracji pakietu SDK na potrzeby nawigacji.
Więcej informacji o implementacji pakietu SDK nawigacji w innych usługach niż Mobilność, w tym o przenoszeniu aplikacji z jednego typu implementacji do innego, znajdziesz u swojego opiekuna klienta Google.
Uwaga: jeśli nie jesteś jeszcze klientem Mobility Services i chcesz dowiedzieć się więcej o kolecji interfejsów API i pakietów SDK Mobility Services, skontaktuj się z działem sprzedaży Google Maps Platform.