|
เอกสารนี้ครอบคลุมฟิลด์ยานพาหนะที่สำคัญซึ่งคุณสามารถ อัปเดตได้เมื่อสร้างและจัดการยานพาหนะ
|
ดูรายการฟิลด์ยานพาหนะทั้งหมดได้ที่
|
ฟิลด์สถานะยานพาหนะ
ระบบของคุณสามารถตั้งค่าสถานะยานพาหนะเป็น OFFLINE หรือ ONLINE เช่น คุณอาจตั้งค่าสถานะรถเป็น ONLINE ทุกวันเวลา 09:00 น. และ OFFLINE ทุกวันเวลา 17:00 น.
| โหมดออฟไลน์ | โหมดออนไลน์ |
|---|---|
ใช้ OFFLINE เพื่อระบุว่ายานพาหนะไม่รับ
การเดินทางใหม่ โปรดทราบว่ายานพาหนะยังคงสามารถให้บริการการเดินทางที่ได้รับมอบหมายให้เสร็จสมบูรณ์ได้ขณะที่
อยู่ในสถานะนี้ |
|
ฟิลด์แอตทริบิวต์ของยานพาหนะ
ใช้ช่องattributesยานพาหนะเพื่อสร้างเกณฑ์ที่กำหนดเองเพื่อให้ผู้บริโภคหรือผู้ประกอบการกองยานพาหนะค้นหายานพาหนะในกองยานพาหนะของคุณได้ตามเกณฑ์การค้นหาที่หลากหลายมากขึ้น สิ่งนี้จะช่วยเพิ่มความสามารถของแอปของคุณในการระบุรถที่ตรงกับความต้องการของคุณได้ดีขึ้น โดยไม่ต้องใช้เกณฑ์การค้นหาที่อิงจากข้อมูลรถยนต์อื่นๆ เพียงอย่างเดียว ยานพาหนะแต่ละคันมีแอตทริบิวต์ได้สูงสุด 100 รายการ และแต่ละรายการต้องมีคีย์ที่ไม่ซ้ำกัน ค่าอาจเป็นสตริง บูลีน หรือตัวเลข
ตัวอย่างเช่น คุณสามารถประกาศแอตทริบิวต์แบบกำหนดเองที่เรียกว่า class เพื่อแยกความแตกต่างระหว่างยานพาหนะร่วมโดยสารของคุณในแต่ละระดับคลาส คุณจะใช้ค่าสตริงต่อไปนี้เพื่อแสดงระดับคลาสยานพาหนะ: ECONOMY, STANDARD และ LUXURY
อย่างไรก็ตาม ค่าแอตทริบิวต์ที่กำหนดเองไม่จำเป็นต้องแยกจากกัน คุณอาจใช้เกณฑ์ เช่น อนุญาตให้นำสัตว์เลี้ยงเข้าพักฟรี, ห้ามสูบบุหรี่ และ สามารถเดินทางได้นานกว่านั้นได้ แต่ละรายการเหล่านี้สามารถเป็นแอตทริบิวต์แบบกำหนดเองที่แยกจากกันซึ่งใช้ค่าบูลีน ยานพาหนะที่กำหนดอาจได้รับการกำหนดให้มีแอตทริบิวต์ที่กำหนดเองทั้งสามรายการนี้พร้อมกับแอตทริบิวต์ที่กำหนดเอง class ที่ตั้งค่าเป็นค่าสตริงที่เหมาะสม
การใช้คุณลักษณะในลักษณะนี้สามารถมอบคุณลักษณะต่างๆ มากมายที่เป็นประโยชน์ต่อการค้นหายานพาหนะสำหรับการเดินทางที่มีความต้องการเฉพาะเจาะจง สำหรับคำแนะนำเกี่ยวกับวิธีใช้แอตทริบิวต์แบบกำหนดเองเป็นตัวกรองแบบสอบถาม โปรดดูที่ค้นหายานพาหนะ
อัปเดตคุณสมบัติของยานพาหนะ
คุณสามารถอัปเดตคุณลักษณะของยานพาหนะได้โดยใช้ UpdateVehicle หรือ UpdateVehicleAttributes แต่ละคีย์ attributes สามารถมีค่าได้เพียงค่าเดียวเท่านั้นต่อยานพาหนะหนึ่งคัน คุณประกาศแอตทริบิวต์ยานพาหนะที่กำหนดเองโดยใช้ attributes
ในฟิลด์มาสก์ จากนั้นระบุค่าตามวิธีการด้านล่าง
UpdateVehicle |
UpdateVehicleAttributes |
|
|---|---|---|
API นี้ไม่อนุญาตให้อัปเดตแอตทริบิวต์เพียงรายการเดียว เมื่อใช้วิธีนี้ การใช้ฟิลด์ attributes
ใน Field Mask จะส่งผลให้มีการประกาศชุดทั้งหมดของ
แอตทริบิวต์ยานพาหนะใหม่สำหรับยานพาหนะ ซึ่งจะส่งผลให้มีการเขียนทับแอตทริบิวต์ที่มีอยู่ก่อนหน้านี้ซึ่งไม่ได้รวมไว้ในฟิลด์มาสก์อย่างชัดเจน หากใช้วิธีนี้เพื่อประกาศแอตทริบิวต์ที่กำหนดเองใหม่
คุณต้องประกาศแอตทริบิวต์ที่กำหนดเองทุกรายการที่คุณต้องการให้ยานพาหนะ
เก็บไว้ใหม่ด้วย หากคุณยกเว้น attributes ในฟิลด์มาสก์
วิธีนี้จะทำให้แอตทริบิวต์ที่กำหนดเองที่มีอยู่ยังคงเป็นไปตามที่กำหนดไว้ก่อนหน้านี้
สำหรับยานพาหนะ หากคุณใช้ attributes ในมาสก์ฟิลด์
แต่ไม่ได้ตั้งค่า จะเท่ากับการนำแอตทริบิวต์ที่กำหนดเองทั้งหมด
ออกจากยานพาหนะ
|
เมธอดนี้ยอมรับรายการแอตทริบิวต์ที่เฉพาะเจาะจงเพื่อ อัปเดต คำขอจะอัปเดตหรือเพิ่มเฉพาะแอตทริบิวต์ที่ระบุ ในฟิลด์มาสก์เท่านั้น แอตทริบิวต์ที่มีอยู่แล้วซึ่งไม่ได้ระบุจะยังคง ไม่เปลี่ยนแปลง |
ตัวอย่างการอัปเดตฟิลด์ยานพาหนะ
ส่วนนี้แสดงวิธีอัปเดตฟิลด์ยานพาหนะโดยใช้ UpdateVehicleRequest
ซึ่งมี update_mask เพื่อระบุฟิลด์ที่จะอัปเดต ดูรายละเอียดได้ที่เอกสารประกอบของ Protocol Buffers เกี่ยวกับฟิลด์มาสก์
การอัปเดตฟิลด์อื่นๆ นอกเหนือจาก last_location ต้องมีสิทธิ์ของผู้ดูแลระบบ Fleet Engine On-demand
ตัวอย่าง: เปิดใช้ประเภทการเดินทางใหม่และแอตทริบิวต์ที่กำหนดเอง
ตัวอย่างนี้จะเปิดใช้back_to_backสำหรับยานพาหนะและยังระบุแอตทริบิวต์ใหม่ด้วย นั่นคือ class ดังที่ระบุไว้ในอัปเดตแอตทริบิวต์ยานพาหนะก่อนหน้านี้
การอัปเดตฟิลด์ attributes โดยใช้วิธีนี้กำหนดให้คุณต้องระบุแอตทริบิวต์ที่กำหนดเองทั้งหมดที่ต้องการเก็บไว้
ดังนั้น ตัวอย่างจึงแสดงค่า cash_only
ที่เขียนขึ้นเพื่อป้องกันไม่ให้มีการเขียนทับระหว่างการดำเนินการอัปเดต
ที่ระบุฟิลด์ attributes
หากต้องการอัปเดตเฉพาะค่าของคู่แอตทริบิวต์คีย์-ค่าคู่เดียว ให้ใช้เมธอด
UpdateVehicleAttributes แทน และอย่ารวมฟิลด์ attribute
ไว้ในฟิลด์มาสก์สำหรับคำขอ UpdateVehicle
ดูข้อมูลอ้างอิงสำหรับ gRPC และ REST ใน providers.vehicles.update
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