消费者 SDK 提供一站式功能,供消费者的拼车应用 显示车辆的位置和进度。
但是,一些拼车服务提供商希望更好地控制其最终用户 通过灵活集成来改善客户体验,同时仍利用 Google 提供的准确实时的车辆位置、预计到达时间和路线。本指南 介绍了如何直接从 Fleet Engine 检索行程数据, 使用消费者 SDK 的备选方案。
概览
如需直接从 Fleet Engine 检索行程信息,请调用 GetTrip
方法,指定 JOURNEY_SHARING_V1S 视图
(RPC
|
REST)。
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);
生成的行程 (RPC | REST) 对象将填充以下字段 关于行程的最新可用信息:
name
vehicle_id
trip_status
trip_type
number_of_passengers
pickup_point
actual_pickup_point
pickup_time
intermediate_destinations
intermediate_destinations_version
intermediate_destination_index
dropoff_point
actual_dropoff_point
dropoff_time
remaining_waypoints
last_location
view
(== JOURNEY_SHARING_V1S)
拼车服务提供商通常会向行程服务轮询每个行程的状态
在乘客主动监控车辆期间,每隔 2-5 秒
进度。车辆位置信息的更新通常间隔较长,例如
10 秒。可以监控 Trip.last_location.update_time
字段,
自上次调用 GetTrip
以来是否有任何更新。
行程航点
Trip 实体包含类型为 TripWaypoint
的重复字段
(RPC
|
REST)。
此字段包含车辆在
。指定旅程共享
视图会指示 Fleet Engine 将更新后的信息放入剩余的航点:[0]
TripWaypoint
。在其他非行程共享视图中,该航点不会
通常反映所分配车辆的最新位置。
下面是行程 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 的路线中。