Tài liệu này trình bày 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ý xe.
|
Để xem danh sách đầy đủ các trường về xe, hãy xem:
|
Trường trạng thái xe
Hệ thống của bạn có thể đặt trạng thái xe thành OFFLINE
hoặc ONLINE
. Ví dụ: bạn có thể đặt trạng thái xe thành ONLINE
vào lúc 9 giờ sáng và OFFLINE
vào lúc 5 giờ chiều mỗi ngày.
Chế độ KHÔNG KẾT NỐI MẠNG | Chế độ TRỰC TUYẾN |
---|---|
Sử dụng OFFLINE để cho biết rằng một xe không chấp nhận các chuyến đi mới. Xin lưu ý rằng xe vẫn có thể hoàn thành các chuyến đi được chỉ định trong khi
ở trạng thái này. |
|
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. Việc này giúp nâng cao khả năng của ứng dụng để
cung cấp kết quả phù hợp hơn về xe so với kết quả tìm kiếm của bạn dựa trên tiêu chí tìm kiếm
chỉ dựa vào các trường khác về xe. 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 tùy chỉnh có tên là class để
phân biệt xe đi chung xe của bạn giữa các cấp lớp. Bạn sẽ sử dụng
các giá trị chuỗi sau đây để biểu thị cấp hạng xe: ECONOMY
,
STANDARD
và LUXURY
.
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ư phù hợp với thú cưng, không hút thuốc và có thể mất nhiều thời gian chuyến đi. Mỗi thuộc tính này có thể là một thuộc tính tuỳ chỉnh riêng biệt sử dụng boolean giá trị. Một chiếc xe nhất định có thể được chỉ định cả ba thuộc tính tuỳ chỉnh này cùng với thuộc tính tùy chỉnh class được đặt thành giá trị chuỗi thích hợp.
Việc sử dụng các thuộc tính theo cách này có thể cung cấp cho bạn nhiều tính năng hữu ích để tìm xe cho những chuyến đi có nhu cầu cụ thể. Để biết hướng dẫn về cách sử dụng thuộc tính tuỳ chỉnh làm bộ lọc truy vấn, hãy xem bài viết Tìm kiếm xe.
Cập nhật các thuộc tính của xe
Bạn có thể cập nhật các thuộc tính của xe bằng cách sử dụng UpdateVehicle
hoặc
UpdateVehicleAttributes
. Mỗi khoá attributes
chỉ có thể có một giá trị cho mỗi xe. Bạn khai báo các 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 các giá trị dựa trên phương thức bên dưới.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
API này không cho phép chỉ cập nhật một thuộc tính duy nhất. 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 xe được khai báo lại cho xe. Điều này dẫn đến
ghi đè bất kỳ thuộc tính nào đã có sẵn không được bao gồm rõ ràng trong
mặt nạ trường. Nếu bạn sử dụng phương thức này để khai báo thuộc tính tuỳ chỉnh mới,
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
giữ lại. Nếu bạn loại trừ attributes trong mặt nạ trường,
thì phương thức này sẽ để lại các thuộc tính tuỳ chỉnh hiện có như đã xác định trước đó
cho chiếc xe. Nếu bạn sử dụng attributes trong mặt nạ trường nhưng không đặt giá trị, thì điều đó tương đương với việc xoá tất cả thuộc tính tuỳ chỉnh khỏi xe.
|
Phương thức này chấp nhận một danh sách thuộc tính cụ thể để cập nhật. Yêu cầu chỉ cập nhật hoặc thêm những thuộc tính được chỉ định trong mặt nạ trường. Những thuộc tính có sẵn không được chỉ định sẽ được giữ lại không bị thay đổi. |
Cập nhật ví dụ về các trường về xe
Phần này trình bày cách cập nhật các trường về xe bằng cách sử dụng UpdateVehicleRequest
,
bao gồm update_mask
để cho biết những trường nào cần cập nhật. Hãy xem tài liệu về mặt nạ trường của Vùng đệm giao thức để biết thông tin chi tiết.
Bạn cần có đặc quyền Quản trị viên theo yêu cầu của Công cụ của đội xe để cập nhật các trường khác ngoài last_location
.
Ví dụ: bật loại chuyến đi mới và thuộc tính tuỳ chỉnh
Ví dụ này cho phép thực hiện các chuyến đi back_to_back
cho xe, đồng thời chỉ định một
thuộc tính mới: class
. Như đã nêu trong phần Cập nhật thuộc tính xe trước đó,
để cập nhật trường attributes
theo phương pháp này, bạn cần chỉ ra 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 giá trị cash_only
được ghi để bảo toàn giá trị đó khỏi bị ghi đè trong thao tác cập nhật chỉ định trường attributes
.
Để chỉ cập nhật giá trị của một cặp thuộc tính khoá-giá trị, hãy sử dụng
Thay vào đó, UpdateVehicleAttributes
và không bao gồm trường attribute
trong mặt nạ trường cho yêu cầu UpdateVehicle
.
Xem tài liệu tham khảo providers.vehicles.update
cho gRPC và REST.
gRPC
static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";
VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);
String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
.setVehicleState(VehicleState.ONLINE)
.addAllAttributes(ImmutableList.of(
VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
.setBackToBackEnabled(true)
.build();
UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
.setName(vehicleName)
.setVehicle(updatedVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("vehicle_state")
.addPaths("attributes")
.addPaths("back_to_back_enabled"))
.build();
try {
Vehicle updatedVehicle =
vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
// Most implementations will call CreateVehicle in this case
break;
case PERMISSION_DENIED:
break;
}
return;
}
// If no Exception, Vehicle updated successfully.
REST
curl -X PUT \
"https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
--data-binary @- << EOM
{
"vehicleState": "ONLINE",
"attributes": [
{"key": "class", "value": "LUXURY"},
{"key": "cash_only", "value": "false"}
],
"backToBackEnabled": true
}
EOM