Nawigowanie po trasach dla dużych pojazdów

Dla kogo jest ten przewodnik: Przeczytaj ten przewodnik, jeśli jesteś programistą aplikacji mobilnych odpowiedzialnym za tworzenie szczegółowej nawigacji dla kierowców ciężarówek, autobusów lub innych dużych pojazdów użytkowych.

Czego dowiesz się z tego przewodnika: z tego przewodnika dowiesz się, jak korzystać z trasy dla ciężarówki wygenerowanej przez interfejs Routes API lub Route Optimization API i używać jej do nawigacji krok po kroku za pomocą pakietu Navigation SDK na iOS.

Czego się nauczysz

Dowiesz się, jak wykonać te czynności:

  • Używać routeToken , aby połączyć planowanie trasy w backendzie z nawigacją w aplikacji.
  • Skonfigurować Navigation SDK do korzystania z wcześniej zaplanowanej trasy dla ciężarówki.
  • Dowiedzieć się, jak ograniczenia dotyczące ciężarówek są wyświetlane kierowcy w interfejsie nawigacji.

Wymagania wstępne

Zanim zaczniesz, upewnij się, że spełniasz te wymagania:

1. Poproś o dostęp do projektu

Wyznaczanie tras dla dużych pojazdów jest dostępne tylko dla niektórych klientów. Aby wyrazić zainteresowanie i poprosić o dostęp do projektu Google Cloud, wypełnij formularz kontaktowy. Przedstawiciel Google skontaktuje się z Tobą, aby omówić dalsze kroki.

Gdy Google przyzna Ci dostęp, upewnij się, że Twój projekt w chmurze Google Cloud jest skonfigurowany do wyznaczania tras dla dużych pojazdów.

Jeśli Twoja organizacja używa osobnych projektów Google Cloud na potrzeby interfejsów API wyznaczania tras w backendzie i pakietu Navigation SDK na urządzenia mobilne, skontaktuj się z Google, aby skonfigurować każdy projekt.

2. Skonfiguruj generowanie tras w backendzie i uzyskaj token trasy

Zanim rozpoczniesz nawigację na urządzeniu, serwer backendu musi wygenerować trasę dla ciężarówki i uzyskać routeToken za pomocą jednego z tych interfejsów API:

Żądanie backendu musi zawierać travelMode: TRUCK oraz fizyczne atrybuty pojazdu (wysokość, szerokość, długość, waga, liczba osi i ładunek niebezpieczny). Interfejs Routing API zwraca w odpowiedzi routeToken, który serwer backendu przekazuje do aplikacji mobilnej.

3. Spełnij minimalne wymagania dotyczące pakietu SDK i systemu

Twoja aplikacja musi używać co najmniej wymaganej wersji pakietu Navigation SDK, czyli 5.4.0 lub nowszej.

Ponadto Twój projekt musi spełniać standardowe wymagania dotyczące konfiguracji pakietu Navigation SDK.

Ograniczenia i wytyczne operacyjne

Zanim zaczniesz, zapoznaj się z tymi ograniczeniami i wytycznymi operacyjnymi:

  • Dostępność geograficzna: wyznaczanie tras dla dużych pojazdów jest dostępne w 48 sąsiadujących ze sobą stanach USA (dostępność ogólna) i Japonii (wersja eksperymentalna). Nie jest dostępne na Alasce, Hawajach ani na terytoriach USA.
  • Porady i bezpieczeństwo dla kierowców: kierowcy nie mogą polegać wyłącznie na trasach zwracanych przez Navigation SDK, aby zapewnić bezpieczeństwo lub zgodność z przepisami. Trasy mogą nie być odpowiednie dla pojazdu w każdych warunkach drogowych, a ich pokonywanie może narażać kierowców na niebezpieczeństwa, takie jak niskie prześwity lub drogi z ograniczeniami wagi. Kierowcy muszą zawsze zachowywać czujność i przestrzegać znaków drogowych oraz lokalnych przepisów.
  • Trasy z najlepszymi możliwymi wynikami: jeśli interfejs Routing API nie może znaleźć trasy, która w pełni spełnia ograniczenia dotyczące pojazdu, zwraca trasę „z najlepszymi możliwymi wynikami”, która może nadal przebiegać przez odcinki z ograniczeniami. Na przykład Routes API ustawia w odpowiedzi flagę routeRestrictionsPartiallyIgnored. Podczas nawigowania po tych trasach Navigation SDK wyświetla objaśnienia trasy, aby wyróżnić odpowiednie ograniczenia. W takich przypadkach dokładnie planuj trasy i nie używaj oznaczonej trasy jako jedynego źródła informacji do planowania lub nawigacji.
  • Nieobsługiwane funkcje: wyznaczanie tras dla dużych pojazdów nie obsługuje tych funkcji:
    • Opłaty za przejazd ciężarówką
    • Ograniczenia prędkości dla ciężarówek i dużych pojazdów
    • Wyznaczanie tras dla radioaktywnych materiałów niebezpiecznych
  • Limity wykorzystania: żądania wysyłane do Navigation SDK podlegają standardowym limitom wykorzystania i limitom przydziału. Więcej informacji znajdziesz w artykule Wykorzystanie i rozliczenia.

Wyświetlanie interfejsu dla ciężarówek (objaśnienia trasy)

Navigation SDK automatycznie wyświetla na mapie ostrzeżenia wizualne, czyli objaśnienia trasy, aby ostrzegać kierowców o nadchodzących ograniczeniach dotyczących ciężarówek. Objaśnienia pojawiają się w przypadku ograniczeń występujących na zaplanowanej trasie, ale nie są wyświetlane na innych pobliskich drogach.

Navigation SDK zawiera objaśnienia dotyczące tych ograniczeń:

Ograniczenie Ikona i tekst objaśnienia Warunki wyświetlania
Wysokość Żółta ikona ograniczenia wysokości
Żółty = ostrzeżenie, Twój pojazd jest blisko maksymalnej dopuszczalnej wysokości
Czerwona ikona ograniczenia wysokości
Czerwony = Twój pojazd przekracza maksymalną dopuszczalną wysokość
Gdy wysokość pojazdu jest bliska ograniczenia, pojawia się żółte objaśnienie.
Mapa z ostrzeżeniem o ograniczeniu wysokości
Jeśli trasa jest niezgodna z przepisami i narusza ograniczenie wysokości, pojawia się czerwone objaśnienie.
Mapa pokazująca naruszenie ograniczenia wysokości
Waga Ikona ograniczenia wagi Gdy waga pojazdu przekracza limit drogi, pojawia się czerwone objaśnienie.
Mapa z ikoną ograniczenia wagi
Zakaz ciężarówek Ikona zakazu wjazdu dla ciężarówek Gdy jedziesz odcinkiem drogi z ograniczeniem dla ciężarówek, pojawia się czerwone objaśnienie.
Mapa z ikoną zakazu wjazdu dla ciężarówek
Materiały niebezpieczne Ikona towarów niebezpiecznych Gdy przewóz materiałów niebezpiecznych jest zabroniony na danym odcinku drogi, pojawia się czerwone objaśnienie.
Mapa z ikoną towarów niebezpiecznych

Jak działają tokeny trasy

routeToken to zaszyfrowana migawka trasy utworzona przez backend wyznaczania tras Google. Zawiera geometrię zaplanowanej trasy oraz fizyczne wymiary pojazdu i profil ograniczeń.

Proces wygląda tak:

  1. Żądanie trasy: serwer backendu wysyła żądanie trasy dla ciężarówki do Routes API (lub Route Optimization API).
  2. Otrzymanie tokena: interfejs Routing API oblicza zgodną trasę i zwraca routeToken do serwera backendu.
  3. Przekazanie tokena: serwer backendu przekazuje routeToken i współrzędne miejsca docelowego do aplikacji mobilnej.
  4. Przekazanie do pakietu SDK: aplikacja mobilna przekazuje routeToken do Navigation SDK.
  5. Rozpoczęcie nawigacji: Navigation SDK obsługuje wszystkie aspekty nawigacji krok po kroku, w tym renderowanie objaśnień trasy i obsługę dynamicznego wyznaczania trasy zgodnie z ograniczeniami dotyczącymi pojazdu.

Dynamiczne ponowne obliczanie i wyznaczanie trasy

Podczas aktywnej nawigacji warunki na drodze, zamknięcia dróg lub pominięte skręty mogą spowodować, że pojazd zboczy z zaplanowanej trasy.

Gdy nastąpi zmiana trasy:

  • Navigation SDK automatycznie ponownie oblicza trasę do miejsca docelowego.
  • Pakiet SDK zachowuje atrybuty i wymiary pojazdu zakodowane w oryginalnym routeToken.
  • Nowo obliczona trasa omija niskie prześwity, mosty z ograniczeniami wagi i drogi, na których obowiązuje zakaz wjazdu dla ciężarówek.

Implementacja: rozpoczęcie przejazdu ciężarówką

Aby zainicjować i rozpocząć nawigację krok po kroku za pomocą tokena trasy dla dużego pojazdu, wykonaj te czynności.

Krok 1. Uzyskaj token trasy z backendu

Aplikacja mobilna otrzymuje ciąg znaków routeToken wraz ze współrzędnymi miejsca docelowego z serwera backendu. Szczegółowe informacje o generowaniu tego tokena na serwerze znajdziesz w artykule Generowanie tras dla dużych pojazdów i szacowanych czasów dotarcia w dokumentacji Routes API.

Oto przykładowy token trasy:

{
  "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}

Krok 2. Przekaż token do nawigatora

Przekaż routeToken i punkty pośrednie miejsca docelowego do metody mapView.navigator setDestinations.

Podczas konfigurowania punktów pośrednich i przekazywania tokena trasy pamiętaj o tych kwestiach:

  • Wymaganie dotyczące zgodności miejsca docelowego: współrzędne miejsca docelowego przekazane do setDestinations muszą być zgodne ze współrzędnymi miejsca docelowego używanymi podczas generowania routeToken. Określenie innego miejsca docelowego spowoduje błąd.
  • Wyznaczanie tras po stronie drogi: duże pojazdy użytkowe nie mogą łatwo zawracać na wąskich ulicach. Aby zapewnić, że ciężarówka zbliża się do miejsca docelowego po właściwej stronie drogi, ustaw preferSameSideOfRoad = true w punktach pośrednich.
  • Przystanki pojazdu: aby poprowadzić ciężarówkę do odpowiedniego miejsca na przystanek lub rozładunek, ustaw vehicleStopover = true w punktach pośrednich.
  • Punkty nawigacyjne: jeśli miejsce docelowe ma wyznaczone wejście dla towarów lub rampę załadunkową, określ je za pomocą tokena punktu nawigacyjnego.

Krok 3. Obsłuż stan trasy i rozpocznij nawigację

Oceń GMSRouteStatus zwrócony w wywołaniu zwrotnym setDestinations. Gdy stan to .OK (GMSRouteStatusOK), ustaw isGuidanceActive = true (guidanceActive = YES), aby rozpocząć aktywną nawigację krok po kroku.

Przykładowy kod

Przekaż token trasy do Navigation SDK za pomocą metody mapView.navigator setDestinations, określając te same punkty pośrednie miejsca docelowego, których użyto podczas tworzenia tokena trasy:

// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"

mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})

Wyświetlacze w pojeździe

Sesję nawigacji dla dużych pojazdów możesz wyświetlać na ekranach w desce rozdzielczej za pomocą Nawigacji w CarPlay.

Dalsze kroki

  • Zmodyfikuj interfejs nawigacji: dostosuj wbudowane elementy sterujące i elementy wizualne, takie jak kompas, przycisk ponownego wyśrodkowania i perspektywa kamery.
  • Nasłuchuj zdarzeń nawigacji: obsługuj aktualizacje nawigacji i zdarzenia cyklu życia, takie jak postęp trasy, zmiany szacowanego czasu dotarcia na miejsce i zmiany trasy.