این سند زمینه های مهم وسیله نقلیه را که می توانید هنگام ایجاد و مدیریت وسایل نقلیه به روز کنید، پوشش می دهد.
| برای لیست کامل فیلدهای خودرو، نگاه کنید به:
|
زمینه وضعیت خودرو
سیستم شما می تواند وضعیت خودرو را روی OFFLINE
یا ONLINE
تنظیم کند. برای مثال، ممکن است وضعیت خودرو را هر روز در ساعت 9 صبح روی ONLINE
و ساعت 5 بعد از ظهر OFFLINE
تنظیم کنید.
حالت آفلاین | حالت آنلاین |
---|---|
از OFFLINE برای نشان دادن اینکه وسیله نقلیه سفرهای جدید را نمی پذیرد، استفاده کنید. توجه داشته باشید که خودرو همچنان می تواند سفرهای تعیین شده را در این حالت انجام دهد. |
|
فیلد ویژگی های خودرو
از فیلد attributes
خودرو برای ایجاد معیارهای سفارشی استفاده کنید تا به مصرف کنندگان یا اپراتورهای ناوگان خود امکان دهید وسایل نقلیه موجود در ناوگان شما را در طیف گسترده تری از معیارهای جستجو پیدا کنند. این قابلیتهای برنامههای شما را برای ارائه تطابق بهتر خودرو نسبت به آنچه که از معیارهای جستجوی صرفاً بر اساس سایر زمینههای خودرو انجام میدهید، افزایش میدهد. هر وسیله نقلیه می تواند حداکثر 100 ویژگی داشته باشد و هر یک باید یک کلید منحصر به فرد داشته باشد. مقادیر می توانند رشته ها، بولی ها یا اعداد باشند.
به عنوان مثال، می توانید یک ویژگی سفارشی به نام class را برای متمایز کردن وسایل نقلیه اشتراکی خود در سطوح کلاس اعلام کنید. از مقادیر رشته زیر برای نمایش سطوح کلاس خودرو استفاده می کنید: ECONOMY
، STANDARD
و LUXURY
.
با این حال، مقادیر ویژگی های سفارشی نباید متقابلاً منحصر به فرد باشند. شما ممکن است از معیارهایی مانند دوستدار حیوانات خانگی ، سیگار نکشیدن و امکان سفرهای طولانی تر استفاده کنید. هر یک از اینها می تواند یک ویژگی سفارشی جداگانه باشد که از مقادیر بولی استفاده می کند. یک وسیله نقلیه داده شده می تواند هر سه این ویژگی سفارشی را به همراه صفت سفارشی کلاس به مقدار رشته مناسب اختصاص دهد.
استفاده از ویژگی ها از این طریق می تواند طیف گسترده ای از ویژگی های مفید برای یافتن وسایل نقلیه برای سفرهایی با نیازهای خاص را در اختیار شما قرار دهد. برای دستورالعملهای نحوه استفاده از ویژگیهای سفارشی به عنوان فیلترهای جستجو، به جستجوی وسایل نقلیه مراجعه کنید.
ویژگی های خودرو را به روز کنید
می توانید ویژگی های خودرو را با استفاده از UpdateVehicle
یا UpdateVehicleAttributes
به روز کنید. هر کلید attributes
فقط می تواند یک مقدار در هر وسیله نقلیه داشته باشد. شما ویژگی های خودروی سفارشی را با استفاده از attributes
در ماسک فیلد، و سپس ارائه مقادیر بر اساس روش زیر اعلام می کنید.
UpdateVehicle | UpdateVehicleAttributes | |
---|---|---|
این API اجازه به روز رسانی تنها یک ویژگی را نمی دهد. هنگام استفاده از این روش، هرگونه استفاده از فیلد attributes در ماسک فیلد منجر به اعلام مجدد کل مجموعه ویژگی های خودرو برای وسیله نقلیه می شود. این منجر به بازنویسی هر ویژگی از قبل موجود می شود که به صراحت در ماسک فیلد گنجانده نشده است. اگر از این روش برای اعلام یک ویژگی سفارشی جدید استفاده میکنید، باید هر ویژگی سفارشی را که میخواهید خودرو حفظ کند، مجدداً اعلام کنید. اگر 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.
استراحت
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