本指南介绍如何直接从 Fleet Engine 检索行程数据, 使用消费者 SDK 的备选方案。您可以通过此方法 控制最终用户体验,同时仍然利用舰队 引擎提供准确、实时的车辆位置、预计到达时间和路线。
如需详细了解如何使用消费者 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 |
|
检索剩余的行程航点
Trip 实体包含类型为 TripWaypoint
的重复字段。此字段
包含车辆在前按顺序行驶的所有航点
这是本次行程的最后一个下车点指定“旅程分享”视图会告诉您
Fleet Engine 用于在剩余路径点 [0] 中添加更新信息
TripWaypoint
。在其他非行程共享视图中,该航点不会
通常反映所分配车辆的最新位置。请参阅
RPC 或 REST 的参考文档。
如需了解详情,请参阅行程状态和剩余车辆航点 行程简介指南。
以下是行程 A 的 remaining_waypoints
字段示例:
| |||||||||||||||||||||
|
对于连续和共享的池化行程,此列表可能包含航点
在此行程之前要遍历的其他行程。例如,假设
行程 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 的路线中。