Dla kogo jest ten przewodnik: przeczytaj ten przewodnik, jeśli jesteś deweloperem aplikacji mobilnych i odpowiadasz za tworzenie szczegółowych wskazówek dojazdu dla kierowców ciężarówek, autobusów lub innych dużych pojazdów używanych w celach komercyjnych.
Co zawiera ten przewodnik: ten przewodnik wyjaśnia, jak wygenerować trasę dla ciężarówki za pomocą interfejsu Routes API lub interfejsu Route Optimization API i użyć jej do uruchomienia sesji szczegółowych wskazówek dojazdu za pomocą pakietu Navigation SDK na Androida.
Czego się nauczysz
Dowiesz się, jak:
- Użyj
routeToken, aby połączyć planowanie tras w backendzie z nawigacją w aplikacji. - Skonfiguruj pakiet Navigation SDK, aby używał zaplanowanej trasy dla ciężarówek.
- Dowiedz 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 dla ograniczonej liczby klientów. Aby wyrazić zainteresowanie i poprosić o dostęp do projektu Google Cloud, wypełnij formularz kontaktowy. Przedstawiciel Google skontaktuje się z Tobą w sprawie dalszych kroków.
Gdy Google przyzna dostęp, upewnij się, że Twój projekt w chmurze Google Cloud jest skonfigurowany pod kątem wyznaczania tras dla dużych pojazdów.
Jeśli Twoja organizacja używa oddzielnych projektów Google Cloud na potrzeby interfejsów API routingu backendu i pakietu Navigation SDK na urządzenia mobilne, skontaktuj się z Google, aby udostępnić każdy projekt.
2. Konfigurowanie generowania tras w backendzie i uzyskiwanie tokena 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:
- Routes API: zalecany do obliczania tras pojedynczych ciężarówek między miejscami początkowymi i docelowymi. Instrukcje konfiguracji znajdziesz w artykule Generowanie tras i szacowanego czasu dotarcia na miejsce dla dużych pojazdów.
- Route Optimization API: zalecany do optymalizacji tras z wieloma przystankami dla całej floty. Więcej informacji znajdziesz w przewodniku po wyznaczaniu tras dla dużych pojazdów w Route Optimization API.
Żądanie backendu musi określać travelMode: TRUCK wraz z atrybutami fizycznymi pojazdu (wysokość, szerokość, długość, waga, liczba osi i ładunek niebezpieczny). Interfejs API trasowania zwraca w odpowiedzi obiekt routeToken, który serwer backendu przekazuje do aplikacji mobilnej.
3. Spełnianie minimalnych wymagań dotyczących pakietu SDK i wymagań systemowych
Aplikacja musi używać minimalnej wymaganej wersji pakietu Navigation SDK, czyli 5.2.0 lub nowszej.Oprócz tego 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 wskazówkami dotyczącymi działania:
- Dostępność geograficzna: wyznaczanie tras dla dużych pojazdów jest dostępne w 48 stanach kontynentalnych USA (ogólna dostępność) i w Japonii (funkcja eksperymentalna). Nie jest dostępna na Alasce, Hawajach ani na terytoriach zależnych USA.
- Porady i bezpieczeństwo kierowcy: kierowcy nie powinni polegać wyłącznie na trasach zwracanych przez Navigation SDK, aby zapewnić bezpieczeństwo i zgodność z przepisami. Trasy mogą nie być odpowiednie dla pojazdu w każdych warunkach drogowych, a podążanie nimi może narazić kierowców na niebezpieczeństwa, takie jak niskie prześwity lub drogi z ograniczeniem wagowym. Kierowcy muszą zawsze zachować czujność i przestrzegać znaków drogowych oraz lokalnych przepisów.
- Trasy „best-effort”: gdy interfejs API routingu nie może znaleźć trasy, która w pełni spełnia ograniczenia dotyczące pojazdu, zwraca trasę „best-effort”, która może nadal obejmować odcinki z ograniczeniami. Na przykład interfejs Routes API ustawia w odpowiedzi flagę
routeRestrictionsPartiallyIgnored. Podczas nawigacji po tych trasach pakiet Navigation SDK wyświetla objaśnienia dotyczące trasy, aby wyróżnić odpowiednie ograniczenia. W takich przypadkach starannie planuj trasy i nie używaj oznaczonej trasy jako jedynego źródła wiarygodnych danych do planowania lub nawigacji. - Nieobsługiwane funkcje: wyznaczanie tras dla dużych pojazdów nie obsługuje tych funkcji:
- Opłaty drogowe dla ciężarówek
- ograniczenia prędkości dla ciężarówek i pojazdów ciężkich,
- Trasa dla materiałów niebezpiecznych radioaktywnych
- Limity wykorzystania: żądania wysyłane do pakietu Navigation SDK podlegają standardowym limitom wykorzystania i limitom przydziału. Więcej informacji znajdziesz w artykule Użycie i rozliczenia.
Wyświetlanie interfejsu dla ciężarówek (objaśnienia dotyczące trasy)
Pakiet Navigation SDK automatycznie wyświetla na mapie ostrzeżenia wizualne, zwane objaśnieniami trasy, aby ostrzegać kierowców o nadchodzących ograniczeniach dotyczących ciężarówek. Objaśnienia pojawiają się w przypadku ograniczeń, które występują na planowanej trasie, ale nie na innych drogach w pobliżu.
Pakiet SDK do nawigacji zawiera objaśnienia dotyczące tych ograniczeń:
| Ograniczenie | Ikona i tekst objaśnienia | Warunki wyświetlania |
|---|---|---|
| Wysokość |
Żółty = ostrzeżenie, Twój pojazd jest blisko maksymalnej dozwolonej wysokości
Czerwony = Twój pojazd przekracza maksymalną dozwoloną wysokość |
Gdy wysokość pojazdu jest zbliżona do ograniczenia, pojawia się żółty dymek.
Jeśli trasa jest niezgodna z przepisami i narusza ograniczenie wysokości, pojawi się czerwony dymek.
|
| Waga |
|
Gdy waga pojazdu przekracza limit drogi, pojawia się czerwony dymek.
|
| Zakaz wjazdu ciężarówek |
|
Gdy jedziesz odcinkiem drogi z ograniczeniami dla ciężarówek, pojawia się czerwone objaśnienie.
|
| Materiały niebezpieczne |
|
Czerwone objaśnienie pojawia się, gdy przewóz materiałów niebezpiecznych jest zabroniony na danym odcinku drogi.
|
Jak działają tokeny trasy
routeToken to zaszyfrowany zrzut trasy utworzony przez backend routingu Google. Obejmuje geometrię planowanej trasy, a także wymiary fizyczne pojazdu i profil ograniczeń.
Ten proces składa się z takich kroków:
- Żądanie trasy: serwer backendu żąda trasy dla ciężarówki z interfejsu Routes API (lub Route Optimization API).
- Odbieranie tokena: interfejs API routingu oblicza zgodną trasę i zwraca
routeTokendo serwera backendu. - Przekazywanie tokena: serwer backendu przekazuje
routeTokeni współrzędne miejsca docelowego do aplikacji mobilnej. - Przekazywanie do pakietu SDK: aplikacja mobilna przekazuje
routeTokendo pakietu Navigation SDK. - Rozpoczęcie nawigacji: Navigation SDK obsługuje wszystkie aspekty szczegółowych wskazówek dojazdu, w tym renderowanie objaśnień trasy i obsługę dynamicznego wyznaczania trasy zgodnie z ograniczeniami pojazdu.
Dynamiczne przeliczanie i zmiana trasy
Podczas aktywnej nawigacji warunki na drodze, zamknięte drogi lub pominięte skręty mogą spowodować, że pojazd zboczy z zaplanowanej trasy.
Gdy następuje przekierowanie:
- Pakiet Navigation SDK automatycznie ponownie oblicza trasę do miejsca docelowego.
- Pakiet SDK zachowuje atrybuty i wymiary pojazdu zakodowane w pierwotnym obiekcie
routeToken. - Nowo obliczona trasa omija niskie przejazdy, mosty z ograniczeniem tonażu i drogi, na których obowiązuje zakaz ruchu ciężarówek.
Implementacja: rozpoczynanie przejazdu ciężarówką
Aby zainicjować i rozpocząć szczegółową nawigację z tokenem trasy dla dużego pojazdu, wykonaj te czynności.
Krok 1. Uzyskaj token trasy z backendu
Aplikacja mobilna otrzymuje ciąg tekstowy routeToken wraz ze współrzędnymi miejsca docelowego z serwera backendu. Więcej informacji o generowaniu tego tokena na serwerze znajdziesz w artykule Generowanie tras i szacowanego czasu dotarcia na miejsce dla dużych pojazdów w dokumentacji interfejsu Routes API.
Poniższy kod to przykładowy token trasy:
{
"routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}
Krok 2. Ustaw miejsca docelowe za pomocą tokena trasy
Przekaż tabelę routeToken do konwertera navigator.setDestinationsWithToken. Pakiet Navigation SDK pobiera miejsca docelowe z tokena trasy wraz z profilem trasy TRUCK, który nakazuje mu stosowanie ograniczeń dotyczących dużych pojazdów.
Nie musisz przekazywać punktów pośrednich ani ustawiać środka transportu.
Ustaw opcje punktów orientacyjnych w żądaniu do interfejsu Routes API, które tworzy token trasy. Pakiet Navigation SDK pobiera je z tokena wraz z miejscami docelowymi. W przypadku dużych pojazdów rozważ te opcje:
- Wyznaczanie trasy po stronie drogi: duże pojazdy komercyjne nie mogą łatwo zawracać na wąskich ulicach. Aby mieć pewność, że ciężarówka dotrze do miejsca docelowego po właściwej stronie drogi, ustaw
sideOfRoadnatruew punkcie na trasie miejsca docelowego. - Postoje pojazdu: aby skierować ciężarówkę do odpowiedniego miejsca na postój lub rozładunek, ustaw parametr
vehicleStopovernatruew punkcie na trasie miejsca docelowego. - Punkty nawigacyjne: jeśli miejsce docelowe ma wyznaczone wejście dla dostawców lub dok załadunkowy, określ je za pomocą tokena punktu nawigacyjnego.
Krok 3. Obsługa stanu trasy i rozpoczęcie nawigacji
Gdy pakiet Navigation SDK zakończy obliczanie trasy, przekazuje do wywołania zwrotnego obiekt RouteDescription. Gdy getRouteStatus zwróci Navigator.RouteStatus.OK, wywołaj navigator.startGuidance, aby rozpocząć szczegółową nawigację.
Aby sprawdzić, czy pakiet Navigation SDK zastosował token trasy, zapoznaj się z sekcją Sprawdzanie, czy pakiet Navigation SDK zastosował token trasy.
Przykładowy kod
Przekaż token trasy do navigator.setDestinationsWithToken, a następnie rozpocznij nawigację, gdy stan trasy to OK.
// Obtain the routeToken string from your backend
String routeToken = "route token returned by Routes API";
navigator.setDestinationsWithToken(
routeToken,
routeDescription -> {
if (routeDescription.getRouteStatus() == Navigator.RouteStatus.OK) {
navigator.startGuidance();
}
});
Wyświetlacze w pojazdach
Sesję nawigacji dla dużych pojazdów możesz wyświetlać na ekranach wbudowanych w deskę rozdzielczą, korzystając z Nawigacji w Androidzie Auto.Dalsze kroki
- Modyfikowanie interfejsu nawigacji: dostosuj wbudowane elementy sterujące interfejsu i elementy wizualne, takie jak kompas, przycisk wyśrodkowania i perspektywa kamery.
- Nasłuchiwanie zdarzeń nawigacyjnych: obsługuj aktualizacje nawigacji i zdarzenia cyklu życia, takie jak postęp na trasie, zmiany szacowanego czasu dotarcia na miejsce i zmiany trasy.