이 가이드에서는 Consumer SDK를 사용하는 대신 Fleet Engine에서 직접 이동 데이터를 검색하는 방법을 보여줍니다. 이 접근 방식을 사용하면 Fleet Engine의 정확한 실시간 차량 위치, 도착 예정 시간, 경로를 활용하면서 최종 사용자 환경을 더 세부적으로 제어할 수 있습니다.
소비자 SDK 사용에 대한 자세한 내용은 주문형 여정의 여정 공유를 참고하세요.
경로 정보 검색
Fleet Engine에서 이동 정보를 직접 검색하려면 JOURNEY_SHARING_V1S
뷰를 지정하여 GetTrip
메서드를 호출합니다. RPC 또는 REST 참조를 확인하세요.
일반적으로 서버는 사용자가 차량 진행 상황을 적극적으로 모니터링하는 동안 이동 서비스에서 각 이동의 상태를 폴링합니다. 차량 위치 업데이트는 일반적으로 10초마다 발생하며 시스템도 동일한 속도로 폴링해야 합니다. Trip.last_location.update_time
필드를 모니터링하여 이전 GetTrip
호출 이후 업데이트가 있었는지 확인할 수 있습니다.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String TRIP_ID = "trip-A";
String tripName = "providers/" + PROJECT_ID + "/trips/" + TRIP_ID;
GetTripRequest getTripRequest =
GetTripRequest.newBuilder()
.setName(tripName)
.setView(JOURNEY_SHARING_V1S)
.build();
Trip trip = tripService.getTrip(getTripRequest);
결과 Trip
객체에는 경로에 대해 이용 가능한 최신 정보로 채워진 다음 필드가 있습니다.
name |
trip_status |
remaining_waypoints |
vehicle_id |
trip_type |
last_location |
number_of_passengers |
pickup_point |
view (== JOURNEY_SHARING_V1S) |
actual_pickup_point |
intermediate_destinations |
intermediate_destination_index |
pickup_time |
intermediate_destinations_version |
dropoff_point |
actual_dropoff_point |
dropoff_time |
|
나머지 경유지 가져오기
Trip 항목에는 TripWaypoint
유형의 반복 필드가 포함됩니다. 이 필드에는 이 이동의 최종 하차 지점 전에 차량이 순서대로 이동해야 하는 모든 중간 지점이 포함됩니다. 여정 공유 뷰를 지정하면 업데이트된 정보를 나머지 경유지[0] TripWaypoint
에 넣도록 Fleet Engine에 지시합니다. 여정 공유가 아닌 다른 뷰에서는 해당 경유지가 일반적으로 할당된 차량의 최신 위치를 반영하지 않습니다. RPC 또는 REST에 대한 참조를 확인하세요.
자세한 내용은 운행 소개 가이드의 운행 상태 및 남은 차량 웨이포인트를 참고하세요.
다음은 이동 A에 대한 remaining_waypoints
필드의 예입니다.
| |||||||||||||||||||||
|
연달아 이동하는 경로와 공유 풀링 경로의 경우 이 목록에 이 경로 전에 이동해야 하는 다른 경로의 중간 지점이 포함될 수 있습니다. 예를 들어 이동 B가 이동 A와 동일한 차량에 할당되는 시나리오를 생각해 보세요. 그러면 경로 A의 remaining_waypoints
필드가 다음과 같이 채워집니다.
간결성을 위해 대부분의 필드가 생략되었지만 이전 예와 동일하게 채워집니다.
[0] | trip_id = "trip_A" |
---|---|
경유지_유형 = PICKUP_WAYPOINT_TYPE | |
[1] | trip_id = "trip_B" |
경유지_유형 = PICKUP_WAYPOINT_TYPE | |
[2] | trip_id = "trip_B" |
경유지_유형 = DROP_OFF_WAYPOINT_TYPE | |
[3] | trip_id = "trip_A" |
waypoint_type = DROP_OFF_WAYPOINT_TYPE |
이동 B의 remaining_waypoint
필드도 마찬가지로 채워지지만 이동 A의 하차 지점이 이동 B 경로의 일부가 아니므로 처음 세 항목만 존재합니다.