什么是按需行程?

本部分中的文档介绍了如何使用 Google 地图出行服务创建和处理行程。本教程假定您熟悉以下内容:

您将使用的 TripService 适用于 gRPCREST。为简单起见,字段引用遵循 gRPC 惯例。

在适用于按需服务的 Fleet Engine 中,行程是一种历程,用于模拟从消费者那里获取外卖或乘车请求的执行方式。行程具有状态,您可以在行程演变过程中向 Fleet Engine 报告该状态,例如 NEWENROUTE_TO_PICKUP 等。行程状态与分配给车辆的地理定位路点相对应,并且每当您更新行程时,车队引擎都会修改这些车辆路点。如需详细了解行程及其与车辆的关系,请参阅车队引擎基础知识中的按需行程

行程生命周期

如需在车队引擎中跟踪每一次行程,您必须先创建一个 Trip 实体。如需查看参考信息,请参阅 gRPCREST

下表介绍了在您的系统中创建的出行的一例端到端流程,以及其在车队引擎中的生命周期阶段。该示例假定您已设置车队引擎,并有车辆可分配给行程,并且已在驾驶员应用中启用位置信息更新。请参阅驾驶员 SDK:随叫行程

1 接收预订请求。 在车队引擎行程开始之前,您的预订系统会先通过您的应用或其他预订系统收到来自消费者的乘车或送货请求。然后,您的系统使用包含所需字段(例如上车地点)的 CreateTrip 创建行程实体。 此时,它还可以设置其他字段,例如乘客和下车地点,或者等待系统分配车辆。请参阅创建单目的地行程
2 分配车辆。

您可以直接在自己的系统中将车辆分配给行程,并将分配情况报告给车队引擎;也可以使用搜索车辆服务搜索车辆,同时按行程和车辆属性进行过滤,以找到最适合完成行程的车辆。在您的搜索半径范围内的所有在线车辆都会通过 Driver SDK 提供的位置信息更新来告知其相近情况。

SearchVehicle 返回与行程匹配的车辆后,您的系统会调用 UpdateTrip 端点,以报告您为 NEW 行程分配的车辆 ID。

3 更新行程。 当司机接受行程并开始导航至上车地点后,您的系统会将行程状态从 NEW 更新为 ENROUTE_TO_PICKUP。您需要在整个行程中继续轮询车辆位置,方法是通过应用与后端建立直接连接,或者轮询车队引擎(后者会从 Driver SDK 接收持续不断的车辆位置更新流)。然后,您的系统会将每项行程里程碑报告给车队引擎,后者会相应地更新车辆的航点列表。
4 与消费者分享历程。 Fleet Engine 会将行程详情和车辆位置信息提供给 Consumer SDK,后者使用监听器接收行程更新并在消费者应用中显示这些更新。Fleet Engine 会自动更新预计到达时间、剩余距离、路线和剩余车辆航点。如需了解详情,请参阅分享约车行程
5 完成行程。 当车辆到达行程的目的地航点,并且您的司机指示行程已成功后,您的系统会在车队引擎中将 TripStatus 设置为 COMPLETE。请注意,与车辆一样,无论状态如何,行程实体都会在车队引擎中保持活跃状态 7 天,之后便会被移除。

行程序列流程

下图更详细地展示了此流程。

TripSequenceDiagram

后续步骤