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