تعديل حقول المركبات

يتناول هذا المستند حقول المركبات المهمة التي يمكنك عند إنشاء المركبات وإدارتها.

  • vehicle_state: لتحديد مدى توفّر المركبة للرحلات الجديدة.
  • vehicle_type: حقل مطلوب عند إنشاء مركبة ويمكن أن يكون هذا الحقل أيضًا بمثابة معايير تصفية للمركبات المطابقة. اطّلِع على مقالة إنشاء مركبة للاطّلاع على تفاصيل حول ضبط هذا الحقل.
  • attributes[]: مصفوفة اختيارية من النوع VehicleAttribute استخدِم هذه المعايير لتحديد معايير مخصّصة لتحسين السلوك الفلتري عند البحث عن المركبات أو عرض بياناتها.
 

للاطّلاع على قائمة كاملة بحقول المركبات، يُرجى الاطّلاع على ما يلي:

حقل حالة المركبة

يمكن للنظام ضبط حالة المركبة على OFFLINE أو ONLINE. على سبيل المثال، يمكنك ضبط حالة المركبة على ONLINE كل يوم في الساعة 9 صباحًا وOFFLINE كل يوم في الساعة 5 مساءً.

وضع "بلا إنترنت" وضع الاتصال
استخدِم OFFLINE للإشارة إلى أنّ المركبة لا تقبل الرحلات الجديدة. يُرجى العِلم أنّه لا يزال بإمكان المركبة إكمال الرحلات المخصّصة لها وهي في هذه الحالة.
  • قد يتم عرض Vehicle تم إنشاؤه في الحالة ONLINE على الفور في استجابةً لطلبات بحث SearchVehicles. اطّلِع على البحث عن المركبات للحصول على مزيد من التفاصيل.
  • إنّ المركبات التي يتم إنشاؤها في الولاية ONLINE يجب أن تستخدم last_location. في طلب CreateVehicle.

حقل سمات المركبة

استخدِم حقل المركبة attributes لإنشاء معايير مخصّصة من أجل تفعيل مستهلكين أو مشغلي أسطول للعثور على مركبات في أسطولك عبر معايير البحث المتنوعة. ويؤدي ذلك إلى تحسين إمكانات تطبيقاتك لتوفير مطابقات أفضل للمركبات مقارنةً بما يمكنك الحصول عليه من خلال استخدام معايير البحث التي تستند فقط إلى حقول المركبات الأخرى. لا يمكن أن يزيد عدد مركبات كل مركبة عن 100 السمات، ويجب أن يكون لكل واحدة مفتاح فريد. يمكن أن تكون القيم سلاسل أو قيمًا منطقية أو أرقامًا.

على سبيل المثال، يمكنك تحديد سمة مخصّصة باسم class لتمييز المركبات المشاركة في خدمة النقل العام على مستوى الفئات. يمكنك استخدام ملفوظات السلسلة التالية لتمثيل مستويات فئة المركبات: ECONOMY وSTANDARD وLUXURY.

ومع ذلك، ليس من الضروري أن تكون قيم السمات المخصّصة حصرية بشكل متبادل. يمكنك استخدام معايير مثل يسمح باصطحاب الحيوانات الأليفة ويمنع التدخين ويمكنه إجراء رحلات أطول. يمكن أن يكون كل منها سمة مخصصة منفصلة تستخدم قيمة منطقية القيم. يمكن تخصيص هذه السمات المخصّصة الثلاث لمركبة معيّنة مع سمة class المخصّصة التي يتم ضبطها على قيمة السلسلة المناسبة.

يمكن أن يوفّر لك استخدام السمات بهذه الطريقة مجموعة كبيرة من الميزات المفيدة للعثور على المركبات للرحلات التي تتطلّب احتياجات معيّنة. للحصول على تعليمات حول كيفية لاستخدام سمات مخصّصة كفلاتر طلبات البحث، اطّلِع على القسم البحث عن مركبات.

تعديل سمات المركبات

يمكنك تعديل سمات المركبة باستخدام إما UpdateVehicle أو UpdateVehicleAttributes يمكن أن يحتوي كل مفتاح attributes على قيمة واحدة فقط لكلّ المركبة. أنت تعلن عن سمات مخصّصة للمركبات باستخدام attributes في قناع الحقل، ثم تقديم القيم بناءً على الطريقة أدناه.

UpdateVehicle UpdateVehicleAttributes
لا تسمح واجهة برمجة التطبيقات هذه بتعديل سمة واحدة فقط. عند استخدام هذه الطريقة، يؤدي أي استخدام لحقل 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.

اطّلِع على مرجع 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.

راحة

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

الخطوات التالية