什麼是隨選行程?

本節文件說明如何使用 Google 地圖隨選行程服務建立及處理行程。並假設您熟悉下列項目:

您使用的 TripService 適用於 gRPCREST。為求簡化,欄位參照會遵循 gRPC 慣例。

在 Fleet Engine On Demand Rides and Deliveries 中,行程是一種旅程,可模擬消費者提出的餐點外送或叫車要求。行程有狀態,您會在行程進展時向 Fleet Engine 回報狀態,例如 NEWENROUTE_TO_PICKUP 等。行程狀態對應於指派給車輛的地理位置航點,而 Fleet Engine 會在您每次更新行程時修改這些車輛航點。如要進一步瞭解行程及其與車輛的關係,請參閱車隊引擎基礎知識中的「隨選行程」。

行程的生命週期

如要在 Fleet Engine 中追蹤每趟行程,您必須先建立 Trip 實體。如需參考資料,請參閱 gRPCREST

下表說明在系統中建立行程的端對端流程範例,以及 Fleet Engine 中的生命週期階段。本文假設您已設定 Fleet Engine,且有車輛可指派給行程,並在駕駛人應用程式中啟用位置資訊更新功能。請參閱「Driver SDK:隨選行程」。

1 接收預訂要求。 在 Fleet Engine 行程開始前,預訂系統會先透過應用程式或其他預訂系統,收到消費者提出的叫車或送貨要求。然後,系統會使用 CreateTrip 建立行程實體,並填入必要欄位,例如取貨地點。此時,應用程式也可以設定其他欄位,例如乘客和下車地點,或等到指派車輛後再設定。請參閱「建立單一目的地的行程」。
2 指派車輛。

您可以直接在系統中將車輛指派給行程,並向 Fleet Engine 回報指派情形,也可以使用「搜尋車輛」服務搜尋車輛,並依行程和車輛屬性篩選,找出最適合完成行程的車輛。搜尋半徑內的任何線上車輛,都會透過 Driver SDK 提供的定位更新資訊,告知使用者車輛位置。

SearchVehicle 傳回與行程相符的車輛後,系統會呼叫 UpdateTrip 端點,回報指派給 NEW 行程的車輛 ID。

3 更新行程 司機接受行程並開始導航前往上車地點後,系統會將行程狀態從 NEW 更新為 ENROUTE_TO_PICKUP。在整個行程中,您會持續輪詢車輛位置,方法是直接從應用程式連線至後端,或是輪詢 Fleet Engine,後者會從 Driver SDK 接收持續的車輛位置更新串流。系統隨後會向 Fleet Engine 回報每個行程里程碑,Fleet Engine 則會據此更新車輛的途經點清單。
4 與消費者分享歷程。 Fleet Engine 會將行程詳細資料和車輛位置提供給 Consumer SDK,後者會使用接聽程式接收行程更新,並在消費者應用程式中顯示這些更新。Fleet Engine 會自動更新預計抵達時間、剩餘距離、路線和車輛剩餘路線控點。詳情請參閱「共乘行程 (隨選行程)」。
5 完成行程。 車輛抵達行程的目的地航點,且駕駛人指出行程順利完成後,系統會在 Fleet Engine 中將 TripStatus 設為 COMPLETE。請注意,與車輛一樣,行程實體會在 Fleet Engine 中保留 7 天,無論狀態為何,之後就會移除。

行程序列流程

下圖更詳細地說明這個流程。

TripSequenceDiagram

後續步驟