อัปเดตช่องข้อมูลของยานพาหนะ

เอกสารนี้ครอบคลุมช่องยานพาหนะที่สำคัญซึ่งคุณเลือกได้ อัปเดตเมื่อสร้างและจัดการยานพาหนะ

  • vehicle_state: ระบุความพร้อมของยานพาหนะ สำหรับการเดินทางใหม่ๆ
  • vehicle_type: ช่องที่ต้องกรอกเมื่อสร้างยานพาหนะ ช่องนี้ยังใช้เป็นเกณฑ์ตัวกรองสำหรับการจับคู่ยานพาหนะได้ด้วย โปรดดู สร้างพาหนะ เพื่อดูรายละเอียดเกี่ยวกับการตั้งค่าฟิลด์นี้
  • attributes[]: อาร์เรย์ที่ไม่บังคับประเภท VehicleAttribute ใช้ เพื่อกำหนดเกณฑ์ที่กำหนดเองเพื่อปรับปรุง พฤติกรรมการกรองเมื่อค้นหาหรือแสดงรายการยานพาหนะ
 

ดูรายการฟิลด์ยานพาหนะทั้งหมดได้ที่

ช่องสถานะของยานพาหนะ

ระบบของคุณสามารถตั้งค่าสถานะของยานพาหนะเป็น OFFLINE หรือ ONLINE ได้ ตัวอย่างเช่น คุณสามารถ อาจตั้งค่าสถานะยานพาหนะเป็น ONLINE ทุกวัน เวลา 09:00 น. และ OFFLINE ทุกวัน ตอน 17:00 น.

โหมดออฟไลน์ โหมดออนไลน์
ใช้ OFFLINE เพื่อระบุว่ารถไม่ยอมรับ การเดินทางใหม่ๆ โปรดทราบว่ารถจะยังคงสามารถเดินทางตามที่ได้รับมอบหมายได้ในขณะที่ ในสถานะนี้
  • Vehicle ที่สร้างขึ้นในสถานะ ONLINE อาจส่งคืนทันทีใน การตอบสนองต่อ SearchVehicles คำถาม ดูค้นหายานพาหนะ สำหรับข้อมูลเพิ่มเติม รายละเอียด
  • ยานพาหนะที่สร้างขึ้นในรัฐONLINEควรใช้ last_location ในการโทร CreateVehicle

ช่องแอตทริบิวต์ยานพาหนะ

ใช้ช่อง attributes ของยานพาหนะเพื่อสร้างเกณฑ์ที่กำหนดเองเพื่อเปิดใช้ ผู้บริโภคหรือผู้ให้บริการกลุ่มรถยนต์เพื่อค้นหายานพาหนะในกลุ่มต่างๆ ได้ในวงกว้าง เกณฑ์การค้นหาที่หลากหลาย การดำเนินการนี้จะช่วยเพิ่มความสามารถของแอปในการ ให้ข้อมูลที่ตรงกับยานพาหนะมากขึ้นเมื่อเทียบกับข้อมูลที่คุณได้มาจากการใช้เกณฑ์การค้นหา อิงตามฟิลด์อื่นๆ ของยานพาหนะเท่านั้น ยานพาหนะแต่ละคันมีได้ไม่เกิน 100 คัน และแต่ละรายการต้องมีคีย์ที่ไม่ซ้ำกัน ค่าอาจเป็นสตริง บูลีน หรือหมายเลข

ตัวอย่างเช่น คุณประกาศแอตทริบิวต์ที่กำหนดเองชื่อ class ไปยัง แยกความแตกต่างของยานพาหนะที่ให้บริการร่วมเดินทางในแต่ละระดับชั้น คุณควรใช้ ค่าสตริงต่อไปนี้เพื่อแสดงระดับคลาสของยานพาหนะ: ECONOMY, STANDARD และ LUXURY

อย่างไรก็ตาม ค่าแอตทริบิวต์ที่กำหนดเองไม่จำเป็นต้องแยกออกจากกัน คุณอาจ ใช้เกณฑ์ เช่น นำสัตว์เลี้ยงเข้าพักได้ ปลอดบุหรี่ และอยู่ได้นานขึ้น การเดินทาง โดยแต่ละรายการอาจเป็นแอตทริบิวต์ที่กำหนดเองแยกต่างหากซึ่งใช้บูลีน คุณจะกำหนดแอตทริบิวต์ที่กำหนดเองทั้ง 3 รายการให้แก่ยานพาหนะหนึ่งๆ ได้ พร้อมกับตั้งค่าแอตทริบิวต์ที่กำหนดเอง class เป็นค่าสตริงที่เหมาะสม

การใช้แอตทริบิวต์ด้วยวิธีนี้จะให้ฟีเจอร์ที่มีประโยชน์มากมาย ค้นหายานพาหนะสำหรับการเดินทางที่มีความต้องการเฉพาะ สำหรับคำแนะนำเกี่ยวกับวิธี หากต้องการใช้แอตทริบิวต์ที่กำหนดเองเป็นตัวกรองการค้นหา โปรดดูค้นหายานพาหนะ

อัปเดตแอตทริบิวต์ยานพาหนะ

คุณจะอัปเดตแอตทริบิวต์ยานพาหนะได้โดยใช้ UpdateVehicle หรือ UpdateVehicleAttributes คีย์ attributes แต่ละคีย์มีได้เพียงค่าเดียวต่อ ยานพาหนะ คุณประกาศแอตทริบิวต์ยานพาหนะที่กำหนดเองโดยใช้ attributes ในมาสก์ของช่อง แล้วระบุค่าตามวิธีการด้านล่าง

UpdateVehicle UpdateVehicleAttributes
API นี้ไม่อนุญาตให้อัปเดตแอตทริบิวต์เพียงรายการเดียว เมื่อใช้ วิธีนี้ การใช้ attributes ในมาสก์ฟิลด์จะให้ผลลัพธ์ทั้งชุดของ แอตทริบิวต์ยานพาหนะที่ต้องประกาศอีกครั้งสำหรับยานพาหนะดังกล่าว ซึ่งส่งผลให้เกิด แทนแอตทริบิวต์ที่มีอยู่ก่อนแล้ว ซึ่งไม่ได้รวมอยู่ใน ของฟิลด์มาสก์ ถ้าคุณใช้วิธีนี้เพื่อประกาศแอตทริบิวต์ที่กำหนดเองใหม่ คุณยังต้องประกาศแอตทริบิวต์ที่กำหนดเองทุกรายการที่คุณต้องการให้ยานพาหนะ เก็บรักษา หากคุณยกเว้น attributes ในมาสก์ของช่อง วิธีนี้จะทำให้มีแอตทริบิวต์ที่กำหนดเองที่มีอยู่ตามที่กำหนดไว้ก่อนหน้านี้ สำหรับยานพาหนะ หากใช้ attributes ในมาสก์ของช่อง แต่ไม่ได้ตั้งค่า ก็เท่ากับ การนำโฆษณาที่กำหนดเองออกทั้งหมด จากยานพาหนะ เมธอดนี้จะยอมรับรายการเฉพาะของแอตทริบิวต์สำหรับ อัปเดต คำขอจะอัปเดตหรือเพิ่มเฉพาะแอตทริบิวต์ที่ระบุไว้ ในมาสก์ของช่อง แอตทริบิวต์ที่มีอยู่แล้วที่ไม่ได้ระบุจะยังคงอยู่ ไม่เปลี่ยนแปลง

ตัวอย่างการอัปเดตฟิลด์ยานพาหนะ

ส่วนนี้จะแสดงวิธีอัปเดตฟิลด์ยานพาหนะโดยใช้ UpdateVehicleRequest ซึ่งจะประกอบด้วย update_mask เพื่อระบุว่าฟิลด์ใดที่ต้องอัปเดต โปรดดู ดูรายละเอียดในเอกสารบัฟเฟอร์ของโปรโตคอลในฟิลด์มาสก์

การอัปเดตช่องอื่นๆ นอกเหนือจาก last_location ต้องใช้ Fleet Engine On-demand สิทธิ์ของผู้ดูแลระบบ

ตัวอย่าง: เปิดใช้ประเภทการเดินทางใหม่และแอตทริบิวต์ที่กำหนดเอง

ตัวอย่างนี้เปิดใช้การเดินทาง 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

ขั้นตอนถัดไป