Interfejs Route Przegląd API

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 zrobić 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);
}

Zrzut ekranu przedstawiający omówienie trasy

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();