Fleet Engine에서 직접 여행 데이터 검색

소비자 SDK는 차량 공유 소비자 앱이 이동 중인 차량의 위치와 진행률을 표시하는 턴키 기능을 제공합니다.

그러나 일부 차량 공유 제공업체는 Google의 정확한 실시간 차량 위치, 도착예정시간 및 경로를 계속 활용하면서 유연한 통합을 통해 최종 사용자 고객 환경을 더 세부적으로 제어하기를 원합니다. 이 가이드에서는 Consumer SDK를 사용하는 대신 Fleet Engine에서 이동 데이터를 직접 검색하는 방법을 설명합니다.

개요

Fleet Engine에서 직접 이동 정보를 검색하려면 JOURNEY_SHARING_V1S 뷰(RPC | REST)를 지정하여 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);

결과로 반환되는 이동(RPC | REST) 객체에는 이동에 사용할 수 있는 최신 정보가 포함된 다음 필드가 포함됩니다.

  • name
  • vehicle_id
  • trip_status
  • trip_type
  • number_of_passengers
  • pickup_point
  • actual_pickup_point
  • pickup_time
  • intermediate_destinations
  • intermediate_destinations_version
  • intermediate_destination_index
  • dropoff_point
  • actual_dropoff_point
  • dropoff_time
  • remaining_waypoints
  • last_location
  • view (== JOURNEY_SHARING_V1S)

차량 공유 제공업체는 일반적으로 탑승자가 차량 진행 상황을 적극적으로 모니터링하는 동안 2~5초마다 각 이동의 상태를 대상으로 이동 서비스를 폴링합니다. 차량 위치 업데이트는 일반적으로 더 긴 간격(예: 10초)입니다. Trip.last_location.update_time 필드를 모니터링하여 이전 GetTrip 호출 이후 업데이트가 있는지 확인할 수 있습니다.

경로 경유지

이동 항목에 TripWaypoint 유형의 반복되는 필드가 포함되어 있습니다(RPC | REST). 이 필드에는 차량이 마지막 하차 지점까지 순서대로 이동해야 하는 모든 경유지가 포함됩니다. 여정 공유 뷰를 지정하면 Fleet Engine이 남은_경유지 TripWaypoint에 업데이트된 정보를 넣도록 지시합니다. 여정 공유 이외의 뷰에서 이 경유지는 일반적으로 할당된 차량의 최근 위치를 반영하지 않습니다.

다음은 이동 A의 remaining_waypoints 필드의 예입니다.

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
Waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_경유지 = LatLng[] 남은 경로에서 승차 위치까지의 첫 번째 LatLng
남은 경로에서 승차 위치까지 두 번째 LatLng
...
남은 경로에서 승차 위치까지의 마지막 LatLng
pickup_point(이전과 다른 경우)
traffic_data
거리_미터 = 현재 이용 중인 차량에서 승차 위치까지의 경로
ETA = 업데이트된 도착예정시간
기간 = 업데이트된 기간
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
Waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_경유지 = LatLng[] 하차 구간에서 첫 번째 LatLng
하차 구간에서 두 번째 LatLng
...
하차 구간의 마지막 LatLng
dropoff_point(이전과 다른 경우)
traffic_data
distance_meters = pickup에서 path_to_ 사례에 대한 거리
ETA = 업데이트된 도착예정시간
duration = 하차 구간 소요 시간

연달아 이동 및 공유 (카풀) 이동을 사용하는 경우 이 목록에는 해당 이동 중에 통과할 다른 경로의 경유지가 포함될 수 있습니다. 예를 들어 이동 B가 경로 A와 동일한 차량에 할당된 시나리오를 생각해 보겠습니다. 그러면 이동 A의 remaining_waypoints 필드가 다음과 같이 채워집니다. (간결성을 위해 대부분의 필드는 생략되었지만 이전 예시와 일관되게 채워집니다.)

[0] trip_id = "trip_A"
Waypoint_type = PICKUP_WAYPOINT_TYPE
[1] trip_id = "trip_B"
Waypoint_type = PICKUP_WAYPOINT_TYPE
[2] trip_id = "trip_B"
Waypoint_type = DROP_OFF_WAYPOINT_TYPE
[3] trip_id = "trip_A"
Waypoint_type = DROP_OFF_WAYPOINT_TYPE

이동 B의 remaining_waypoint 필드도 비슷하게 채워지지만 처음 세 항목만 존재합니다. 이동 A의 하차 지점이 이동 B의 경로의 일부가 아니기 때문입니다.