این سند زمینه های مهم وسیله نقلیه را که می توانید هنگام ایجاد و مدیریت وسایل نقلیه به روز کنید، پوشش می دهد.
| برای یک لیست کامل از فیلدهای خودرو، نگاه کنید به: |
فیلد ویژگی های خودرو
از فیلد attributes
خودرو برای ایجاد معیارهای سفارشی استفاده کنید تا به مصرف کنندگان یا اپراتورهای ناوگان خود امکان دهید وسایل نقلیه موجود در ناوگان شما را در طیف گسترده تری از معیارهای جستجو پیدا کنند. این قابلیتهای برنامههای شما را برای ارائه تطابق بهتر خودرو نسبت به آنچه که از معیارهای جستجوی صرفاً بر اساس سایر زمینههای خودرو انجام میدهید، افزایش میدهد. هر وسیله نقلیه می تواند حداکثر 100 ویژگی داشته باشد و هر یک باید یک کلید منحصر به فرد داشته باشد. مقادیر می توانند رشته ها، بولی ها یا اعداد باشند.
به عنوان مثال، میتوانید یک ویژگی سفارشی به نام zone را اعلام کنید تا مشخص کنید خودروهای تحویل شما در کدام منطقه از شهر کار میکنند. از مقادیر رشتهای مانند موارد زیر برای نمایش مناطق مختلف استفاده میکنید: 1B
، 2C
و 3A
. سپس می توانید از یک فیلتر در Fleet Tracking استفاده کنید تا فقط وسایل نقلیه کار در یک منطقه خاص را به اپراتور مسئول آن منطقه نشان دهید.
با این حال، مقادیر ویژگی های سفارشی نباید متقابلاً منحصر به فرد باشند. شما ممکن است از معیارهایی مانند در دسترس بودن در شب و دارای یخچال استفاده کنید. هر یک از اینها می تواند یک ویژگی سفارشی جداگانه باشد که از مقادیر بولی استفاده می کند. یک وسیله نقلیه داده شده می تواند هر سه این ویژگی های سفارشی را به همراه صفت سفارشی منطقه به مقدار رشته مناسب اختصاص دهد.
ویژگی های خودرو را به روز کنید
هر کلید attributes
فقط می تواند یک مقدار در هر وسیله نقلیه داشته باشد. شما ویژگی های خودروی سفارشی را با استفاده از attributes
در ماسک فیلد، و سپس ارائه مقادیر بر اساس روش زیر اعلام می کنید.
این UpdateDeliveryVehicle
API اجازه به روز رسانی تنها یک ویژگی را نمی دهد. هنگام استفاده از این روش، هرگونه استفاده از فیلد attributes
در ماسک فیلد منجر به اعلام مجدد کل مجموعه ویژگی های خودرو برای وسیله نقلیه می شود. این منجر به بازنویسی هر ویژگی از قبل موجود می شود که به صراحت در ماسک فیلد گنجانده نشده است. اگر از این روش برای اعلام یک ویژگی سفارشی جدید استفاده میکنید، باید هر ویژگی سفارشی را که میخواهید خودرو حفظ کند، مجدداً اعلام کنید. اگر attributes
موجود در ماسک فیلد را حذف کنید، این روش ویژگیهای سفارشی موجود را همانطور که قبلاً برای خودرو تعریف شده است، باقی میگذارد. اگر attributes
در ماسک فیلد استفاده میکنید، اما بدون تنظیم مقادیر، این معادل حذف تمام ویژگیهای سفارشی از وسیله نقلیه است.
نمونه فیلدهای خودرو را به روز کنید
این بخش نحوه بهروزرسانی فیلدهای خودرو را با استفاده از UpdateDeliveryVehicleRequest
نشان میدهد که شامل یک update_mask
برای نشان دادن اینکه کدام فیلدها باید بهروزرسانی شوند. برای جزئیات به مستندات Protocol Buffers در زمینه ماسکها مراجعه کنید.
بهروزرسانی فیلدهای غیر از last_location
به امتیازات مدیریت Fleet Engine Delivery نیاز دارد.
مثال: تنظیم ویژگی سفارشی
این مثال یک ویژگی جدید را مشخص می کند: zone
. همانطور که قبلاً در بهروزرسانی ویژگیهای خودرو ذکر شد، بهروزرسانی فیلد attributes
با استفاده از این رویکرد، شما را ملزم میکند که تمام ویژگیهای سفارشی را که میخواهید حفظ کنید، نشان دهید. بنابراین مثال یک مقدار available-at-night
را نشان میدهد که نوشته شده است تا از بازنویسی آن در طول عملیات بهروزرسانی که فیلد attributes
مشخص میکند، محافظت کند.
به مرجع providers.deliveryVehicles.patch مراجعه کنید.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String VEHICLE_ID = "vehicle-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Vehicle settings
String vehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;
DeliveryVehicle myDeliveryVehicle = DeliveryVehicle.newBuilder()
.addAllAttributes(ImmutableList.of(
DeliveryVehicleAttribute.newBuilder().setKey("zone").setValue("1B").build(),
DeliveryVehicleAttribute.newBuilder().setKey("available-at-night").setValue("true").build()))
.build();
// DeliveryVehicle request
UpdateDeliveryVehicleRequest updateDeliveryVehicleRequest =
UpdateDeliveryVehicleRequest.newBuilder() // No need for the header
.setName(vehicleName)
.setDeliveryVehicle(myDeliveryVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("attributes"))
.build();
try {
DeliveryVehicle updatedDeliveryVehicle =
deliveryService.updateDeliveryVehicle(updateDeliveryVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
استراحت
# Set JWT, PROJECT_ID, VEHICLE_ID, TASK1_ID, and TASK2_ID in the local
# environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles/${VEHICLE_ID}?updateMask=attributes" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"attributes": [
{"key": "zone", "value": "1B"},
{"key": "available-at-night", "value": "true"}
]
}
EOM