Consumer SDK 为拼车消费类应用提供了一项开箱即用功能,能够显示载着他们出发的车辆的位置和进度。
但是,一些拼车提供商希望通过灵活集成来更好地控制其最终用户的客户体验,同时仍然利用 Google 的准确实时车辆位置、预计到达时间和路线。本指南介绍了如何直接从 Fleet Engine 检索行程数据,作为使用 Consumer 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);
生成的 Trip (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 将更新后的信息放入 re 累计的 re 残路径点 [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 的路线。