Najczęstsze pytania

Informacje o produkcie

Problemy

Sieć

Dane

Dostosowywanie interfejsu

Routing

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

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 do Excluded 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:

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

  1. Odczytaj nogi w trakcie podróży za pomocą Navigator.getRouteSegments()
  2. Wywołaj GMSNavigator.timeToNextDestination na każdy etap podróży.
  3. Przekierowuj informacje o czasie do aplikacji klienckiej co robimy dla szacowanego czasu dotarcia na miejsce.
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ść od allowsBackgroundLocationUpdates do TRUE.

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

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

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

W iOS zastosuj:

  1. Zadzwoń do firmy GMSNavigator.routeLegs(read).
  2. Ostatnim etapem jest telefon, GMSNavigator.timeToNextDestination
  3. Ukryj szacowany czas dotarcia na miejsce bieżącego punktu na trasie za pomocą MSMapView.settings.navigationFooterEnabled=NO na FAŁSZ.
  4. Renderuj ostateczny szacowany czas dotarcia na miejsce.
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.
Jakie modyfikacje interfejsu są dostępne dla kart nagłówka i stopki?

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 klawiszy setHeaderEnabled i setFooterEnabled funkcji członka grupy NavigationFragment

W iOS użyj GMSMapView.settings.navigationHeaderPrimaryBackgroundColor aby ustawić styl koloru tła. Aby ukryć lub wyświetlić nagłówek i stopkę użyj funkcji navigationFooterEnabled i navigationHeaderEnabled właściwości GMSUISettings.

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:

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

  1. W kontrolerze widoku mapy zaimplementuj GMSNavigatorListener i GMSRoadSnappedLocationProviderListener.
  2. Wdrażaj GMSNavigatorListener.navigatorDidChangeRoute
  3. Wejdź na nową trasę za pomocą: routeLegs i Właściwości currentRouteLeg komponentu GMSNavigator.
Czy kierowca może opuścić nawigację bez ukończenia trasy?

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 lub GMSLocationSimulator.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 funkcja Navigator.startguidance(getIntent()) jest wywoływana z główną aktywność, która przypomina aktywność, gdy użytkownik aplikacji kliknie powiadomienie.