Route Overview API to usługa typu Last Mile Fleet Solution utworzona DriverSDK. Dzięki niemu można pobrać informacje o trasie danego pojazdu, może to być jednorazowe pobieranie lub ciągłe, korzystając z detektora aktualizacji. Interfejs Route Overview API obsługuje te rodzaje informacji:
- Pełny plan trasy, z uwzględnieniem przystanków pojazdów, czasu podróży i odległości
- Ścieżka linii łamanej trasy między każdym przystankiem.
W tym dokumencie opisujemy kroki integracji z interfejsem API w Twojej aplikacji.
Wymagania wstępne
- Musisz korzystać z aplikacji na Androida, która korzysta z alfa.
pakietu DriverSDK w wersji 4.1.0 lub nowszej. Kanał alfa jest dostępny
za pomocą parametru
transportation-driver-alpha
dla artefaktu Maven. - Interfejs API wykorzystuje informacje o trasie dostarczone przez Fleet Engine
Deliveries API. Można to udostępnić za pomocą interfejsów API w pakiecie DriverSDK
(
DeliveryDriverApi
) lub bezpośrednio do Fleet Engine.
Integracja
W tej sekcji opisano podstawowe czynności, które należy wykonać, aby zintegrować sterowniki aplikacji na Androida. za pomocą interfejsu API. Przy tych instrukcjach przyjęto takie założenia:
- Masz już aplikację na Androida, która jest już zintegrowana z Pakiet SDK sterownika
- Inicjowano w aplikacji obiekt
DeliveryDriverApi
z uwzględnieniem kontekstu obiekt, który możesz znaleźć
Zobacz Pierwsze kroki z pakietem Driver SDK na Androida .
Krok 0. Konfiguracja trasy
Możesz pominąć ten krok, jeśli masz już skonfigurowaną usługę Fleet Engine tworzyć postoje dla pojazdów i zadania dostawy.
Aby wczytać informacje o zatrzymaniach i zadaniach do Fleet Engine, potrzebujesz pojazdu dostawy przypisanej do prawidłowej trasy. Dzieje się tak, ponieważ interfejs Route Overview API wymaga prawidłowych trasy, by pobrać dane. Prawidłowe trasy składają się z serii punkty pośrednie i przystanki, a przystanek może istnieć tylko wtedy, gdy jest powiązany co najmniej jeden zadanie. Zobacz Przewodnik po integracji interfejsu Fleet Engine API .
Krok 1. Zainicjuj interfejs API
Po wyznaczeniu prawidłowej trasy z przystankami i zadaniami możesz
zainicjować interfejs Route Overview API. Platforma inicjująca
niezbędne do połączenia między Fleet Engine a interfejsem API. Trasa
Interfejs API przeglądu należy zainicjować tym samym obiektem kontekstu
zainicjuj DeliveryDriverApi
w pakiecie DriverSDK, ponieważ obiekt odwołuje się do
ten sam identyfikator pojazdu zdefiniowany wcześniej w obiekcie DriverContext
. Poniżej
przykład pokazuje, jak utworzyć instancję RouteOverviewApi
.
RouteOverviewApi api = RouteOverviewApi.getInstance();
if (api == null) {
api = RouteOverviewApi.createInstance(context);
}
Krok 2. Zarejestruj pojazd na potrzeby zdarzeń zmiany trasy
Po zainicjowaniu interfejsu API możesz używać interfejsu VehicleRouteOverview
do interakcji z funkcjami przeglądu trasy. Dzięki temu:
do przetwarzania informacji o trasie podanych podczas konfiguracji trasy.
Używaj detektora zdarzeń interfejsu API, aby ułatwić sobie aktualizowanie zdarzeń i pobieranie tras.
Zdarzenie zmiany trasy występuje za każdym razem, gdy ścieżka do dowolnego z przystanków przypisanych do gdy pojazd zostanie zaktualizowany, przystanek zmieni się lub gdy Fleet Engine zaktualizuje Informacje o szacowanym czasie dotarcia na miejsce.
vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
// handle route update events
});
Krok 3. Włącz interfejs API
Teraz, gdy możesz już korzystać z informacji o trasach, musisz włączyć interfejs API, aby i umożliwiać reagowanie na zdarzenia związane z pojazdami. Pamiętaj, że interfejs API jest inicjowany w pliku wyłączone, aby uniknąć niepotrzebnego zużycia przepustowości sieci.
vehicleRouteOverview.setRouteOverviewEnabled(true);
Aktualizacje możesz wstrzymać w dowolnym momencie, wywołując tę samą metodę za pomocą polecenia
false
.
Krok 4. Narysuj trasę w Mapach Google.
Po uzyskaniu listy RouteToVehicleStop
możesz jej używać w
aplikacji. Na przykład w Mapach Google możesz narysować ścieżkę linii łamanej trasy
instancji. Ten fragment kodu to przykład, który tworzy trasę
linię łamaną w widoku mapy oraz dodając znaczniki do lokalizacji każdego przystanku.
GoogleMap googleMap = … // Instance of the Map view you are using
ImmutableList<RouteToVehicleStop> route = event.newRoute();
PolylineOptions routePolyline = new PolylineOptions().color(Color.BLUE);
for (RouteToVehicleStop stop : route) {
routePolyline.addAll(stop.path());
MarkerOptions marker =
new MarkerOptions().position(stop.vehicleStop().getWaypoint().getPosition());
googleMap.addMarker(marker);
}
googleMap.addPolyline(routePolyline);
}
W ten sposób zobaczysz widok podobny do tego na zrzucie ekranu po prawej stronie:
Krok 5. Pobierz zrzut trasy
Jeśli chcesz, aby aplikacja wysłała jednorazowe połączenie w celu pobrania zrzutu o bieżącej trasie, możesz użyć następującej metody, aby pobrać dane:
ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();
Możesz to zrobić, zamiast subskrybować aktualizacje tras za pomocą detektorów zdarzeń.
Krok 6. Wyczyść dane
Jeśli aplikacja nie potrzebuje już funkcji przeglądu trasy, upewnij się, i tak się stało. Czyszczenie pamięci pozwala uniknąć niepotrzebnej pamięci, przetwarzania wykorzystanie sieci w aplikacji.
Usuwanie konkretnego detektora zdarzeń
Usuń odbiornik, gdy określony detektor niezbędną.
vehicleRouteOverview.removeOnRouteChangedEventListener(listener);
Wyczyść wszystkie detektory zdarzeń
W ramach procedury czyszczenia możesz usunąć wszystkie zarejestrowane detektory zdarzeń jednocześnie.
vehicleRouteOverview.clearEventListeners();
Wyczyść instancję interfejsu Route Overview API
Za każdym razem, gdy Przegląd trasy nie jest już potrzebny lub zmienił się identyfikator śledzonego pojazdu, możesz wywołać ten interfejs API, aby usunąć wewnętrzne odniesienia.
vehicleRouteOverview.clearInstance();