Najczęstsze pytania

Informacje o produkcie

Sieć

Dane

Dostosowywanie UI

Routing

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 na YES.

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:

  1. Pobierz czas i odległość do wszystkich punktów pośrednich za pomocą funkcji Navigator.getTimeAndDistanceList().
  2. 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:

  1. Zdobądź nogi w podróży za pomocą Navigator.getRouteSegments().
  2. Zadzwoń pod numer GMSNavigator.timeToNextDestination na każdy etap podróży.
  3. Przekaż informacje o czasie do aplikacji klienckiej tak jak obecnie w przypadku szacowanego czasu dotarcia na miejsce.
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 na TRUE.

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.

  1. Ustaw próg, aby określić częstotliwość wywołań zwrotnych.
  2. 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:

  1. Pobierz czas i odległość do wszystkich punktów pośrednich za pomocą funkcji Navigator.getTimeAndDistanceList().
  2. Ukryj szacowany czas dotarcia bieżącego punktu na trasie za pomocą NavigationFragment.setEtaCardEnabled(false).
  3. Renderuj ostateczny docelowy szacowany czas dotarcia na miejsce.

W iOS użyj tych elementów:

  1. Zadzwoń do firmy GMSNavigator.routeLegs(read).
  2. Ostatnim etapem wywołaj GMSNavigator.timeToNextDestination.
  3. Ukryj szacowany czas dotarcia bieżącego punktu na trasie za pomocą wartości od MSMapView.settings.navigationFooterEnabled=NO do FAŁSZ.
  4. Renderuj ostateczny docelowy szacowany czas dotarcia na miejsce.
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.
Jakie zmiany w interfejsie są dostępne w przypadku kart nagłówka i stopki?

Na Androidzie styl tła ustawiasz za pomocą StylingOptions. Aby ukryć lub wyświetlić nagłówek i stopkę, użyj funkcji setHeaderEnabled i setFooterEnabled właściwości NavigationFragment.

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ści navigationFooterEnabled i navigationHeaderEnabled właściwości GMSUISettings.

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 elemencie NavigationMap.

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:

  1. Zarejestruj detektor, który sprawdza położenie urządzenia na trasie, korzystając z metody Navigator.setRouteChangedListener.
  2. 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:

  1. W kontrolerze widoku mapy wdróż protokół GMSNavigatorDelegate i protokół GMSRoadSnappedLocationProviderDelegate.
  2. Wdróż GMSNavigatorDelegate.navigatorDidChangeRoute.
  3. Dotrzyj do nowej trasy, korzystając z właściwości routeLegs i currentRouteLeg obiektu GMSNavigator.
Czy kierowca może zakończyć nawigację bez dokończenia trasy?

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. Metoda simulateLocationsAlongExistingRoute 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ści GMSLocationSimulator.simulateLocationsAlongExistingRoute lub GMSLocationSimulator.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). Tag resume intent uruchamia się, gdy użytkownik aplikacji kliknie powiadomienie. Zwykle funkcja Navigator.startguidance(getIntent()) jest wywoływana z głównej aktywności, która zapamiętuje to działanie, gdy użytkownik aplikacji kliknie powiadomienie.