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