Tài liệu này bao gồm các trường quan trọng về xe mà bạn có thể cập nhật khi tạo và quản lý phương tiện.
|
Để xem danh sách đầy đủ các trường của xe, hãy xem: |
Trường thuộc tính xe
Sử dụng trường attributes
xe để tạo tiêu chí tuỳ chỉnh nhằm cho phép
người tiêu dùng hoặc nhà vận hành đội xe để tìm xe trong đội xe của bạn ở phạm vi rộng hơn
nhiều tiêu chí tìm kiếm. Điều này giúp nâng cao khả năng của ứng dụng để cung cấp kết quả khớp xe tốt hơn so với khi bạn chỉ sử dụng tiêu chí tìm kiếm dựa trên các trường xe khác. Mỗi xe có thể có tối đa 100 thuộc tính và mỗi xe phải có một khoá riêng biệt. Giá trị có thể là chuỗi, boolean hoặc số.
Ví dụ: bạn có thể khai báo thuộc tính tuỳ chỉnh có tên là zone để
hãy phân biệt bạn hoạt động ở khu vực nào của thành phố
để xe giao hàng của bạn hoạt động. Bạn sẽ sử dụng các giá trị chuỗi như sau để biểu thị các vùng khác nhau: 1B
, 2C
và 3A
. Sau đó, bạn có thể sử dụng bộ lọc trong Theo dõi đội phương tiện vận chuyển để chỉ hiển thị
xe làm việc trong một khu vực cụ thể cho người vận hành chịu trách nhiệm về khu vực đó.
Tuy nhiên, các giá trị thuộc tính tuỳ chỉnh không nhất thiết phải loại trừ lẫn nhau. Bạn có thể sử dụng các tiêu chí như có hàng vào ban đêm và có-điều-kiện. Mỗi thuộc tính trong số này có thể là một thuộc tính tuỳ chỉnh riêng biệt sử dụng giá trị boolean. Một chiếc xe cụ thể có thể được gán cả ba trong số các thuộc tính tùy chỉnh này cùng với vùng được đặt thành giá trị chuỗi thích hợp.
Cập nhật thuộc tính xe
Mỗi khoá attributes
chỉ được có một giá trị cho mỗi xe. Bạn khai báo
thuộc tính xe tuỳ chỉnh bằng cách sử dụng attributes
trong mặt nạ trường, sau đó
cung cấp giá trị theo phương thức dưới đây.
API UpdateDeliveryVehicle
này không cho phép chỉ cập nhật một thuộc tính. Khi sử dụng phương thức này, mọi hoạt động sử dụng trường attributes
trong mặt nạ trường sẽ dẫn đến việc toàn bộ tập hợp các thuộc tính của xe được khai báo lại cho xe. Điều này dẫn đến việc ghi đè bất kỳ thuộc tính nào có sẵn không
có trong mặt nạ trường. Nếu bạn sử dụng phương thức này để khai báo một
Bạn cũng phải khai báo lại mọi thuộc tính tuỳ chỉnh mà bạn muốn
xe cần giữ lại. Nếu bạn loại trừ attributes
trong mặt nạ trường, thì điều này
để nguyên các thuộc tính tuỳ chỉnh hiện có như đã xác định trước đó cho xe.
Nếu bạn sử dụng attributes
trong mặt nạ trường nhưng không đặt giá trị, thì tức là
tương đương với việc xoá tất cả các thuộc tính tuỳ chỉnh khỏi xe.
Cập nhật ví dụ về các trường về xe
Phần này cho biết cách cập nhật các trường xe bằng UpdateDeliveryVehicleRequest
, trong đó có update_mask
để cho biết trường nào cần cập nhật. Xem tài liệu về Vùng đệm giao thức trên
trường mặt nạ để biết chi tiết.
Bạn cần có đặc quyền Quản trị viên phân phối công cụ của đội xe để cập nhật các trường khác ngoài last_location
.
Ví dụ: đặt thuộc tính tuỳ chỉnh
Ví dụ này chỉ định một thuộc tính mới: zone
. Như đã nêu trong
Cập nhật các thuộc tính xe sớm hơn, cập nhật trường attributes
bằng cách sử dụng
nên phương pháp này yêu cầu bạn chỉ rõ tất cả các thuộc tính tuỳ chỉnh mà bạn muốn giữ lại.
Do đó, ví dụ này cho thấy một giá trị available-at-night
được ghi để bảo toàn giá trị đó khỏi bị ghi đè trong một thao tác cập nhật chỉ định trường attributes
.
Hãy xem tài liệu tham khảo về providers.deliveryVehicles.patch.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String VEHICLE_ID = "vehicle-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Vehicle settings
String vehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;
DeliveryVehicle myDeliveryVehicle = DeliveryVehicle.newBuilder()
.addAllAttributes(ImmutableList.of(
DeliveryVehicleAttribute.newBuilder().setKey("zone").setValue("1B").build(),
DeliveryVehicleAttribute.newBuilder().setKey("available-at-night").setValue("true").build()))
.build();
// DeliveryVehicle request
UpdateDeliveryVehicleRequest updateDeliveryVehicleRequest =
UpdateDeliveryVehicleRequest.newBuilder() // No need for the header
.setName(vehicleName)
.setDeliveryVehicle(myDeliveryVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("attributes"))
.build();
try {
DeliveryVehicle updatedDeliveryVehicle =
deliveryService.updateDeliveryVehicle(updateDeliveryVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
# Set JWT, PROJECT_ID, VEHICLE_ID, TASK1_ID, and TASK2_ID in the local
# environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles/${VEHICLE_ID}?updateMask=attributes" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"attributes": [
{"key": "zone", "value": "1B"},
{"key": "available-at-night", "value": "true"}
]
}
EOM