Route Overview API

Route Overview API는 DriverSDK. 이 기능을 사용하여 특정 차량에 대한 경로 정보를 가져올 수 있습니다. 일회성 가져오기나 업데이트 리스너를 사용해 지속적으로 가져올 수 있습니다. 이 Route Overview API는 다음과 같은 종류의 정보를 지원합니다.

  • 차량 정차 위치, 이동 시간, 거리를 포함한 전체 경로 계획
  • 각 정류장 사이의 경로 다중선 경로입니다.

이 문서에서는 애플리케이션을 위한 API와의 통합 단계를 설명합니다.

기본 요건

  • alpha를 사용하여 Android 애플리케이션을 실행하고 있어야 합니다. DriverSDK v4.1.0 이상의 채널입니다. 알파 채널을 사용할 수 있습니다. Maven artifactId에 transportation-driver-alpha를 사용합니다.
  • API는 Deliveries API 이는 DriverSDK의 API를 통해 제공할 수도 있습니다. (DeliveryDriverApi)를 사용하거나 Fleet Engine에 직접 연결할 수 있습니다.

통합 단계

이 섹션에서는 Android 드라이버 앱을 통합하는 데 필요한 기본 단계를 다룹니다. 확인할 수 있습니다 이러한 안내에서는 다음과 같이 가정합니다.

  • 이미 드라이버 SDK
  • 컨텍스트를 사용하여 앱에서 DeliveryDriverApi를 초기화했습니다. 객체와

자세한 내용은 Android용 드라이버 SDK 시작하기 참조하세요.

0단계 - 경로 설정

이미 Fleet Engine을 설정했으며 가능한 경우 이 단계를 건너뛰어도 됩니다. 차량 정류장 및 배송 작업을 생성합니다.

Fleet Engine에 정류장 및 작업 정보를 로드하려면 배송 차량이 필요합니다. 올바른 경로에 할당됩니다. 이는 Route Overview API에 유효한 데이터를 가져올 수 있습니다 유효한 경로는 정류장은 하나 이상의 연결된 경유지가 있어야만 존재할 수 있습니다 태스크에 맞추는 것입니다. 자세한 내용은 Fleet Engine API 통합 가이드 를 참조하세요.

1단계 - API 초기화

연결된 정류장 및 작업이 있는 유효한 경로를 설정하고 나면 Route Overview API를 초기화합니다. 초기화는 애플리케이션 상태를 Fleet Engine과 API 간의 연결에 필요한 모든 API를 제공합니다. 더 루트 Overview API는 이전에 사용한 것과 동일한 컨텍스트 객체로 초기화해야 합니다. 객체가 DriverSDK에서 DeliveryDriverApi를 초기화합니다. 이는 객체가 이전에 DriverContext 객체에 정의된 것과 동일한 차량 ID 다음 예는 RouteOverviewApi의 인스턴스를 만드는 방법을 보여줍니다.


RouteOverviewApi api = RouteOverviewApi.getInstance();
if (api == null) {
    api = RouteOverviewApi.createInstance(context);
}

2단계 - 경로 변경 이벤트를 위한 차량 등록

이제 API를 초기화했으므로 VehicleRouteOverview를 사용할 수 있습니다. 객체를 사용하여 경로 개요 기능과 상호작용할 수 있습니다. 이렇게 하면 경로를 설정하여 경로 설정 중에 제공한 경로 정보를 사용할 수 있습니다. API 이벤트 리스너를 사용하여 이벤트 업데이트 및 경로 검색을 용이하게 합니다.

경로 변경 이벤트는 다음에 할당된 정류장 중 하나의 경로가 차량이 업데이트되거나, 정류장이 재배치되거나, Fleet Engine이 도착예정시간 정보입니다.


vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
    // handle route update events
});

3단계 - API 사용 설정

이제 경로 정보를 사용할 준비가 되었으므로 API를 사용 설정하여 차량 이벤트에 응답할 수 있습니다. API는 사용 중지되도록 하여 네트워크 대역폭의 불필요한 소비를 방지합니다.

vehicleRouteOverview.setRouteOverviewEnabled(true);

언제든지 false의 값입니다.

4단계 - Google 지도에 경로 그리기

RouteToVehicleStop 목록을 가져오면 다음을 사용할 수 있습니다. 애플리케이션입니다. 예를 들어, Google 지도에 경로 다중선 경로를 그릴 수 있습니다. 인스턴스를 만들 수 있습니다 다음 코드 스니펫은 경로를 그리는 예를 보여줍니다. 다중선으로 표시하고 각 정류장 위치 위에 마커를 추가합니다.

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

경로 개요의 이미지를 보여주는 스크린샷

그러면 오른쪽 스크린샷과 비슷한 뷰가 표시됩니다.

5단계 - 경로 스냅샷 가져오기

앱이 일회성 호출을 실행하여 현재 경로 정보를 가져오는 경우 다음 메서드를 사용하여 해당 정보를 가져올 수 있습니다. 데이터:

ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();

이벤트 리스너를 통해 경로 업데이트를 구독하는 대신 이렇게 할 수 있습니다.

6단계 - 정리

앱에 더 이상 경로 개요 기능이 필요하지 않은 경우 확인합니다. 정리를 수행하면 불필요한 메모리, 처리, 애플리케이션 네트워크 소비량을 줄일 수 있습니다

특정 이벤트 리스너 삭제

특정 리스너가 더 이상 있습니다.

vehicleRouteOverview.removeOnRouteChangedEventListener(listener);

모든 이벤트 리스너 삭제

정리 루틴의 일부로 등록된 여러 이벤트 리스너를 한 번에 모두 제거할 수 있습니다.

vehicleRouteOverview.clearEventListeners();

Route Overview API 인스턴스 삭제

경로 개요가 더 이상 필요하지 않거나 추적 중인 차량의 ID가 변경되면 이 API를 호출하여 내부 참조를 지울 수 있습니다.

vehicleRouteOverview.clearInstance();