列出送货车辆

本文档介绍了如何列出送货车辆。

环境和限制

您可以从服务器或浏览器环境列出送货车辆。Driver SDK 不支持列出配送车辆。

列出配送车辆会请求对配送车辆的广泛访问权限,仅供可信用户使用。发出列出配送车辆请求时,请使用 Delivery Fleet ReaderFleet Engine Delivery Admin 令牌。

由于以下字段的影响,所列送货车辆会被隐去 对响应大小的影响:

  • CurrentRouteSegment
  • RemainingVehicleJourneySegments

用法

您可以按属性过滤条件和视口边界列出车辆。如果您未指定任何过滤条件或视口,则响应中会包含所有配送车辆。

使用属性过滤条件的列表

您可以使用其 attributes 属性按过滤条件列出配送车辆。对于 例如,要查询键为 my_key、值为 my_value 的属性,请使用 attributes.my_key = my_value。如需查询多个属性,请联接查询 使用逻辑 ANDOR 运算符,如 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
  }

后续步骤