このドキュメントでは、配送車両を一覧表示する方法について説明します。
環境と制限事項
サーバー環境またはブラウザ環境から配送車両を一覧表示できます。Driver SDK では、配送車両の一覧表示はサポートされていません。
配送車両の一覧表示リクエストは、配送車両への広範なアクセスを必要とするため、信頼できるユーザーのみを対象としています。配送車両の一覧表示リクエストを行う場合は、Delivery Fleet Reader または Fleet Engine Delivery Admin トークンを使用してください。
レスポンス サイズに影響するため、一覧表示された配送車両には次のフィールドが編集されています。
CurrentRouteSegmentRemainingVehicleJourneySegments
用途
属性フィルタとビューポートの境界で車両を一覧表示できます。フィルタまたはビューポートを指定しない場合、レスポンスにはすべての配送車両が含まれます。
属性フィルタを使用したリスト
attributes プロパティを使用して、フィルタで配送車両を一覧表示できます。たとえば、キーが my_key で値が my_value の属性をクエリするには、attributes.my_key = my_value を使用します。複数の属性をクエリするには、論理演算子 AND と OR を使用してクエリを結合します
attributes.key1 = value1 AND
attributes.key2 = value2。フィルタ クエリ構文の詳細については、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
}