本文說明如何列出運送車輛。
環境和限制
您可以從伺服器或瀏覽器環境列出傳送媒介。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
}