配送車両の一覧表示

このドキュメントでは、配送車両を一覧表示する方法について説明します。

環境と制限

サーバーまたはブラウザ環境から配送車両を一覧表示できます。Driver SDK は配送車両のリスティングをサポートしていません。

配送車両を登録するには、配送車両への幅広いアクセス権が必要になります。これは信頼できるユーザーのみを対象としています。リスト配達車両のリクエストを行う場合は、Delivery Fleet Reader トークンまたは Fleet Engine Delivery Admin トークンを使用します。

リストに記載されている配達車両では、レスポンス サイズに影響するため、次のフィールドが削除されます。

  • CurrentRouteSegment
  • RemainingVehicleJourneySegments

用途

属性フィルタとビューポート境界を使用して、車両を一覧表示できます。フィルタまたはビューポートを指定しない場合は、レスポンスにすべての配信メディアが含まれます。

属性フィルタ付きリスト

attributes プロパティを使用してフィルタすることで、配達車両を一覧表示できます。たとえば、キーが my_key で値が my_value の属性をクエリするには、attributes.my_key = my_value を使用します。複数の属性をクエリするには、attributes.key1 = value1 AND attributes.key2 = value2 のように論理演算子 ANDOR を使用してクエリを結合します。フィルタクエリ構文の詳細については、AIP-160 をご覧ください。フィルタをビューポート境界と組み合わせると、フィルタはビューポート境界に対する AND 演算子として機能します。詳しくは、車両属性フィルタ クエリをご覧ください。

ビューポート境界付きリスト

viewport リクエスト パラメータを使用して、リスト表示された配送車両を場所別にフィルタリングできます。viewport リクエスト パラメータは、2 つの境界座標(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
  }

次のステップ