直接從 Fleet Engine 擷取行程資料

本指南說明如何直接從 Fleet Engine 擷取行程資料, 除了使用 Consumer SDK 外如要使用這個方法 控管使用者體驗,同時也能充分運用機群 引擎提供準確且即時的車輛位置、預計到達時間和路線。

如要進一步瞭解如何使用 Consumer SDK,請參閱「分享隨選即用歷程」 行程

擷取行程資訊

如要直接從 Fleet Engine 擷取行程資訊,請呼叫 GetTrip 方法,指定 JOURNEY_SHARING_V1S 檢視畫面。請參閱RPCREST

您的伺服器通常會輪詢行程服務來取得每趟行程的狀態 乘客主動監控車輛進度。車輛位置 系統通常每 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

擷取剩餘的行程路線控點

行程實體包含 TripWaypoint 類型的重複欄位。這個欄位 包含所有車輛必須依序行駛的所有路線控點 行程的最終停靠點指定「瀏覽歷程」檢視畫面時, Fleet Engine 將更新的資訊放到剩餘_waypoints[0] 中 TripWaypoint。在其他非旅程分享的檢視畫面中,該路點不會 通常反映指定車輛的最新位置。詳情請參閱 RPCREST 的參考資料。

詳情請參閱行程狀態和剩餘車輛路線控點: 「行程簡介」指南。

以下是行程 A 的 remaining_waypoints 欄位範例:

[0] location.point = route.pickup_point.point
trip_id =「trip_A」
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 從剩餘路徑到上車地點的第 1 個 LatLng
從剩餘路徑到上車地點的第 2 個 LatLng
...
從剩餘路徑到上車地點的最後一個 LatLng
pickup_point (如與過去不同)
traffic_data
Distance_meters = 從 path_to_waypoint 上到上車目前車地點的距離
eta = 更新後的預計到達時間
時間長度 = 更新後的時間長度
[1] location.point = Tri.dropoff_point.point
Tri_id =「trip_A」
Waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 距離下車地點的第 1 個 LatLng
距離下車地點的第 2 個 LatLng
...
下車地點的最後 LatLng
dropoff_point (如果與上次不同時)
traffic_data
Distance_meters = 從 path_to_waypoint 上上車到下車的距離
eta = 更新後的預計到達時間
持續時間 = 下車路段持續時間

提供往返和共用的泳池行程清單,其中可能包含路線控點 。舉例來說 行程 B 指派給行程 A 的車輛。 行程 A 的 remaining_waypoints 欄位會填入以下形式。 為求精簡,我們省略了大部分的欄位, 填入與前一個範例一致的區域

[0] Tri_id =「trip_A」
Waypoint_type = PICKUP_WAYPOINT_TYPE
[1] Tri_id =「trip_B」
Waypoint_type = PICKUP_WAYPOINT_TYPE
[2] Tri_id =「trip_B」
Waypoint_type = DROP_OFF_WAYPOINT_TYPE
[3] Tri_id =「trip_A」
Waypoint_type = DROP_OFF_WAYPOINT_TYPE

行程 B 的 remaining_waypoint 欄位填入方式類似,但只有 會顯示前三個項目,因為行程 A 的下車點並非 行程所扮演的角色