本文档介绍了如何列出送货车辆。
环境和限制
您可以在服务器或浏览器环境中列出送货车辆。Driver SDK 不支持列出送货车辆。
列出送货车辆的请求需要对送货车辆进行广泛访问,仅适用于可信用户。在发出列出送货车辆的请求时,请使用 Delivery Fleet Reader 或 Fleet Engine Delivery Admin 令牌。
由于列出的交付工具会影响响应大小,因此以下字段已被隐去:
CurrentRouteSegment
RemainingVehicleJourneySegments
用法
您可以按属性过滤条件和视口边界列出车辆。如果您未指定任何过滤条件或视口,则响应会包含所有送货车辆。
使用属性过滤条件列出
您可以使用配送车辆的 attributes
属性按过滤条件列出配送车辆。例如,如需查询键为 my_key
且值为 my_value
的属性,请使用 attributes.my_key = my_value
。如需查询多个属性,请使用逻辑 AND
和 OR
运算符联接查询,如 attributes.key1 = value1 AND
attributes.key2 = value2
中所示。如需查看过滤查询语法的完整说明,请参阅 AIP-160。如果您将过滤条件与视口边界结合使用,过滤条件会充当视口边界的 AND
运算符。如需了解详情,请参阅车辆属性过滤查询。
带有视口边界的列表
您可以使用 viewport
请求参数按位置过滤列出的送货车辆。viewport
请求参数使用两个边界坐标(即 high
[东北] 和 low
[西南] 纬度和经度坐标对)来定义视口。如果请求中包含的高纬度在地理位置上低于低纬度,则会被拒绝。
列出响应
默认情况下,送货车辆列表会使用合理的页面大小进行分页。如果您指定了页面大小,则请求只会返回限制指定的车辆数量,或者更少的车辆。如果请求的页面大小超过了内部最大值,则使用内部最大值。默认和最大网页大小均为 100 辆车。
送货车辆列表可以包含用于读取下一页结果的令牌。仅当有更多页面的送货车辆可供检索时,响应中才会显示分页令牌。如需检索下一页任务,请使用页面令牌发送请求,该请求与之前的请求完全相同。
列出车辆示例
您可以使用 Java gRPC 库或 REST 列出具有特定属性的特定区域中的送货车辆。成功的响应仍可能为空。如果出现这种情况,则表示指定视口中不存在具有指定属性的车辆。
Java
static final String PROJECT_ID = "my-delivery-co-gcp-project";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Tasks request
String parent = "providers/" + PROJECT_ID;
ListDeliveryVehiclesRequest listDeliveryVehiclesRequest =
ListDeliveryVehiclesRequest.newBuilder() // No need for the header
.setParent(parent)
.setViewport(
Viewport.newBuilder()
.setHigh(LatLng.newBuilder()
.setLatitude(37.45)
.setLongitude(-122.06)
.build())
.setLow(LatLng.newBuilder()
.setLatitude(37.41)
.setLongitude(-122.11)
.build())
.setFilter("attributes.my_key = my_value")
.build();
try {
ListDeliveryVehiclesResponse listDeliveryVehiclesResponse =
deliveryService.listDeliveryVehicles(listDeliveryVehiclesRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
# HTTP request
html GET https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles
# Request with a filter
# Request sets JWT, PROJECT_ID, and VEHICLE_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles?filter=attributes.my_key%20%3D%20my_value%20&viewport.high.latitude=37.45&viewport.high.longitude=-122.06&viewport.low.latitude=37.41&viewport.low.longitude=-122.11"
如果查找成功,响应正文将包含结构如下的数据:
// JSON representation
{
"deliveryVehicles": [
{
object (DeliveryVehicle)
}
],
"nextPageToken": string,
"totalSize": integer
}