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 của 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 của xe thành ONLINE
lúc 9 giờ sáng và OFFLINE
lúc 5 giờ chiều hằng 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 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 khi
ở trạng thái này. |
|
Trường thuộc tính xe
Sử dụng trường attributes
của xe để tạo tiêu chí tuỳ chỉnh cho phép người tiêu dùng hoặc người vận hành đội xe tìm thấy xe trong đội xe của bạn theo nhiều tiêu chí tìm kiếm hơn. Đ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 một thuộc tính tuỳ chỉnh có tên là class để phân biệt các loại xe cho dịch vụ đi chung xe. Bạn sẽ sử dụng các giá trị chuỗi sau để biểu thị các cấp độ của lớp 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 vật nuôi, không hút thuốc và có thể đi các chuyến đi dài hơ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 sử dụng giá trị boolean. Một chiếc xe cụ thể có thể được chỉ định cả ba thuộc tính tuỳ chỉnh này cùng với thuộc tính tuỳ chỉnh lớp được đặt thành giá trị chuỗi thích hợp.
Việc sử dụng 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 trong việc 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 thuộc tính xe
Bạn có thể cập nhật các thuộc tính của xe bằng UpdateVehicle
hoặc UpdateVehicleAttributes
. Mỗi khoá attributes
chỉ được có một giá trị cho mỗi xe. Bạn khai báo các thuộc tính tuỳ chỉnh của xe 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. Khi sử dụng phương thức này, mọi trường hợp 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 thuộc tính xe được khai báo lại cho xe. Điều này sẽ dẫn đến việc ghi đè mọi thuộc tính có sẵn không có trong mặt nạ trường. Nếu sử dụng phương thức này để khai báo một 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 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 danh sách cụ thể các thuộc tính cần cập nhật. Yêu cầu này sẽ cập nhật hoặc chỉ thêm các thuộc tính được chỉ định trong mặt nạ trường. Các thuộc tính sẵn có không được chỉ định vẫn không thay đổi. |
Ví dụ về cách cập nhật các trường xe
Phần này cho biết cách cập nhật các trường về xe bằng cách sử dụng UpdateVehicleRequest
, bao gồm cả update_mask
để cho biết những trường nào cần cập nhật. Xem tài liệu về Bộ đệm giao thức trên mặt nạ trường để biết chi tiết.
Để cập nhật những trường không phải last_location
, bạn phải có đặc quyền Quản trị viên theo yêu cầu của Fleet Engine.
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 các chuyến đi back_to_back
cho xe và cũng chỉ định một thuộc tính mới: class
. Như đã lưu ý trong phần Cập nhật thuộc tính xe trước đó, việc cập nhật trường attributes
bằng phương pháp này yêu cầu bạn phải chỉ định tất 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 phương thức UpdateVehicleAttributes
và không đưa trường attribute
vào mặt nạ trường cho yêu cầu UpdateVehicle
.
Hãy 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