本指南說明如何直接從 Fleet Engine 擷取行程資料, 除了使用 Consumer SDK 外如要使用這個方法 控管使用者體驗,同時也能充分運用機群 引擎提供準確且即時的車輛位置、預計到達時間和路線。
如要進一步瞭解如何使用 Consumer SDK,請參閱「分享隨選即用歷程」 行程。
擷取行程資訊
如要直接從 Fleet Engine 擷取行程資訊,請呼叫 GetTrip
方法,指定 JOURNEY_SHARING_V1S
檢視畫面。請參閱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 |
|
擷取剩餘的行程路線控點
行程實體包含 TripWaypoint
類型的重複欄位。這個欄位
包含所有車輛必須依序行駛的所有路線控點
行程的最終停靠點指定「瀏覽歷程」檢視畫面時,
Fleet Engine 將更新的資訊放到剩餘_waypoints[0] 中
TripWaypoint
。在其他非旅程分享的檢視畫面中,該路點不會
通常反映指定車輛的最新位置。詳情請參閱
RPC 或 REST 的參考資料。
詳情請參閱行程狀態和剩餘車輛路線控點: 「行程簡介」指南。
以下是行程 A 的 remaining_waypoints
欄位範例:
| |||||||||||||||||||||
|
提供往返和共用的泳池行程清單,其中可能包含路線控點
。舉例來說
行程 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 的下車點並非
行程所扮演的角色