Niestandardowa nawigacja

Pakiet Navigation SDK udostępnia różne sposoby integracji nawigacji z aplikacją. Na tej stronie wyjaśniamy, czym jest niestandardowa nawigacja i czym różni się od innych nawigacji dostępnych w pakiecie Navigation SDK.

Czym jest niestandardowa nawigacja?

Głównym sposobem implementacji pakietu Navigation SDK jest korzystanie z nawigacji Google która umożliwia osadzanie nawigacji krok po kroku z elementami interfejsu i grafikami dostarczonymi przez Google. Jest ona podobna do nawigacji w aplikacjach Mapy Google. Jeśli potrzebujesz większej elastyczności niż oferuje nawigacja Google, możesz zaimplementować niestandardową nawigację. Niestandardowa nawigacja może polegać na całkowitym wyeliminowaniu wskazówek dotyczących skręcania i uruchamianiu nawigacji tylko jako procesu w tle lub na wyświetlaniu wysoce spersonalizowanych wskazówek na ekranie innym niż urządzenie, na którym działa nawigacja. W przypadku niestandardowej nawigacji aplikacja wywołuje pakiet Navigation SDK, aby poprosić o kanał nawigacji krok po kroku, a następnie udostępnia i zarządza elementami interfejsu i grafikami, które użytkownik widzi w nawigacji. Korzystanie z nawigacji Google jest na ogół łatwiejsze do wdrożenia, ale tworzenie własnej niestandardowej nawigacji pozwala na większe dostosowanie.

Gdy tworzysz niestandardową nawigację, aplikacja wywołuje pakiet Navigation SDK, aby rozpocząć, uruchomić i zatrzymać nawigację, korzystając z tego procesu:

  1. Rozpocznij nawigację. Aby rozpocząć dostosowaną nawigację, utwórz instancję nawigacji i ustaw cel. Ustal sesję nawigacji za pomocą GMSNavigationService.createNavigationSession. Ten obiekt bez interfejsu użytkownika, który przechowuje stan, działa z kontrolerem widoku lub bez niego.

    Więcej informacji znajdziesz w artykule Szczegóły dotyczące kanału danych nawigacji krok po kroku.

    Zobacz wersję demonstracyjną: pobrany pakiet Navigation SDK zawiera wersję demonstracyjną, którą możesz uruchomić, aby zobaczyć przykład nawigacji, która przełącza się między szczegółową nawigacją za pomocą standardowej nawigacji a nawigacją, która pokazuje tylko lokalizację urządzenia poruszającego się po linii łamanej drogi.

  2. Aktywna nawigacja. Oto kolejna kluczowa różnica między nawigacją dostarczoną przez Google a nawigacją niestandardową. Zamiast przekazywać wskazówki do wbudowanego menedżera zdarzeń pakietu Navigation SDK, skonfiguruj odbiornik szczegółowych wskazówek krok po kroku, implementując protokół GMSNavigatorListener, a następnie zaimplementuj obsługę zdarzeń. Dzięki temu Twoja nawigacja może reagować na zdarzenia opisane w artykule Nasłuchiwanie zdarzeń nawigacji .

  3. Zakończ nawigację. Podobnie jak w przypadku nawigacji Google, nawigacja niestandardowa wymaga też zakończenia nawigacji w sposób najlepiej dopasowany do aplikacji.

Kiedy można używać niestandardowej nawigacji?

W tabeli poniżej opisujemy kilka scenariuszy niestandardowej nawigacji.

Przykład

Najważniejsze kroki

Musisz udostępnić kierowcy wskazówki tekstowe na małych urządzeniach, takich jak pojazdy dwukołowe.

Utwórz nawigatora i skonfiguruj szczegółowe wskazówki dojazdu jako kanał danych na małym ekranie, podczas gdy nawigator działa na telefonie komórkowym kierowcy poza jego bezpośrednim widokiem.

Chcesz udostępnić swoją aplikację jako usługę samochodową dla kierowców, którzy korzystają z Apple CarPlay.

  1. Skonfiguruj usługę samochodową.
  2. Skonfiguruj projekt pakietu Navigation SDK.
  3. Jeśli jeszcze tego nie zrobisz, skonfiguruj nawigatora.
  4. Skonfiguruj odbiornik nawigacji krok po kroku.
  5. Narysuj mapę na powierzchni aplikacji samochodowej i wypełnij pola danymi z skonfigurowanego kanału danych.

Więcej informacji znajdziesz w artykule Włączanie nawigacji w CarPlay.

Kierowcy korzystający z Twojej aplikacji chcą mieć mapę ogólną przez większość swojej podróży, a tylko minimalne wskazówki krok po kroku na ulicach miasta.

Twoja aplikacja powinna umożliwiać kierowcom wchodzenie i wychodzenie z nawigacji Google w razie potrzeby bez zmiany ustawień nawigatora dotyczących celu i trybu podróży.