Tài liệu này mô tả cách liệt kê các xe giao hàng.
Môi trường và giới hạn
Bạn có thể liệt kê xe giao hàng trong môi trường máy chủ hoặc trình duyệt. Driver SDK không hỗ trợ việc liệt kê các xe giao hàng.
Việc liệt kê các xe giao hàng yêu cầu quyền truy cập rộng rãi vào các xe giao hàng và chỉ dành cho những người dùng đáng tin cậy. Sử dụng mã thông báo Delivery Fleet Reader hoặc Fleet Engine Delivery Admin khi đưa ra yêu cầu liệt kê xe giao hàng.
Các phương tiện giao hàng trong danh sách đã bị xoá các trường sau do ảnh hưởng đến kích thước phản hồi:
CurrentRouteSegment
RemainingVehicleJourneySegments
Cách sử dụng
Bạn có thể liệt kê các xe theo bộ lọc thuộc tính và ranh giới khung hiển thị. Nếu bạn không chỉ định bộ lọc hoặc khung hiển thị, thì phản hồi sẽ bao gồm tất cả các phương tiện giao hàng.
Danh sách có bộ lọc thuộc tính
Bạn có thể liệt kê các xe giao hàng theo bộ lọc bằng cách sử dụng thuộc tính attributes
của xe. Ví dụ: để truy vấn một thuộc tính có khoá my_key
và giá trị my_value
, hãy sử dụng attributes.my_key = my_value
. Để truy vấn nhiều thuộc tính, hãy kết hợp các truy vấn bằng cách sử dụng toán tử logic AND
và OR
như trong attributes.key1 = value1 AND
attributes.key2 = value2
. Hãy xem AIP-160 để biết nội dung mô tả đầy đủ về cú pháp truy vấn bộ lọc. Nếu bạn kết hợp các bộ lọc với ranh giới khung hiển thị, bộ lọc sẽ hoạt động như một toán tử AND
đối với ranh giới khung hiển thị. Hãy xem Cụm từ tìm kiếm bộ lọc thuộc tính xe để biết thông tin chi tiết.
Danh sách có ranh giới khung nhìn
Bạn có thể lọc các xe giao hàng được liệt kê theo vị trí bằng cách sử dụng tham số yêu cầu viewport
. Tham số yêu cầu viewport
xác định khung nhìn bằng cách sử dụng 2 cặp toạ độ giới hạn: high
(đông bắc) và low
(tây nam) gồm vĩ độ và kinh độ. Các yêu cầu sẽ bị từ chối nếu chứa vĩ độ cao thấp hơn vĩ độ thấp về mặt địa lý.
Liệt kê các câu trả lời
Theo mặc định, danh sách xe giao hàng được phân trang bằng cách sử dụng kích thước trang hợp lý. Nếu bạn chỉ định kích thước trang, yêu cầu sẽ chỉ trả về số lượng xe được chỉ định theo giới hạn hoặc ít hơn. Nếu kích thước trang được yêu cầu vượt quá giá trị tối đa nội bộ, thì giá trị tối đa nội bộ sẽ được sử dụng. Kích thước trang mặc định và tối đa đều là 100 xe.
Danh sách xe giao hàng có thể bao gồm một mã thông báo để đọc trang kết quả tiếp theo. Mã thông báo trang chỉ xuất hiện trong phản hồi khi có nhiều trang xe giao hàng hơn để truy xuất. Để truy xuất trang tiếp theo của các nhiệm vụ, hãy sử dụng mã thông báo trang với một yêu cầu giống hệt yêu cầu trước đó.
Ví dụ về danh sách xe
Bạn có thể sử dụng thư viện gRPC Java hoặc REST để liệt kê các xe giao hàng ở một khu vực cụ thể có một thuộc tính nhất định. Phản hồi thành công vẫn có thể trống. Khi điều đó xảy ra, tức là không có xe nào có thuộc tính được chỉ định trong khung hiển thị được chỉ định.
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"
Nếu tra cứu thành công, nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:
// JSON representation
{
"deliveryVehicles": [
{
object (DeliveryVehicle)
}
],
"nextPageToken": string,
"totalSize": integer
}