ایجاد خودرو برای سفرهای درخواستی

برای ایجاد خودرو در Fleet Engine برای سفرهای درخواستی، از نقطه پایانی CreateVehicle با CreateVehicleRequest استفاده کنید. این نقطه پایانی به حسابی با نقش سرپرست Fleet Engine On-demand نیاز دارد.

فیلدهای وسایل نقلیه سفر درخواستی

هنگام ایجاد خودرو برای سفرهای درخواستی، باید فیلدهای الزامی را تنظیم کنید. همچنین باید با نحوه تأثیر برخی فیلدهای خودرو بر سایر عملکردهای Fleet Engine آشنا باشید. برای این کار، به‌روزرسانی فیلدهای وسیله نقلیه را ببینید.

فیلدهای الزامی برای سفرهای درخواستی

  • vehicle_state: به‌طور پیش‌فرض روی «نامشخص» تنظیم شده است، اما باید روی «آنلاین» یا «آفلاین» تنظیم شود. اطلاعات مربوط به تنظیم فیلد وضعیت خودرو را در به‌روزرسانی فیلدهای خودرو ببینید.
  • supported_trip_types: به‌طور پیش‌فرض روی «نامشخص» تنظیم شده است، اما باید روی SHARED،‏ EXCLUSIVE، یا هر دو تنظیم شود. برای جزئیات، انواع سفر را در راهنمای سفرهای درخواستی ببینید.
  • maximum_capacity: تعداد مسافرانی که خودرو می‌تواند حمل کند، که (طبق تعریف) راننده را شامل نمی‌شود.
  • vehicle_type: مقادیر عبارت‌اند از AUTO، TAXI، TRUCK، TWO_WHEELER، BICYCLE، یا PEDESTRIAN. می‌تواند برای فیلتر کردن خودروها در جستجوی خودرو استفاده شود. این موضوع بر زمان تخمینی ورود و محاسبات مسیر نیز تأثیر می‌گذارد. ‫Fleet Engine مسیرها و محاسبات سفر را که با حالت سفر مطابقت دارد براساس گروه‌های نوع خودرو زیر ارائه می‌دهد:
    • ‫AUTO، TAXI، یا TRUCK: برای مثال بزرگراه‌ها.
    • ‫TWO_WHEELER: برای مثال، مسیرهایی را که وسایل نقلیه دوچرخ در آن‌ها مجاز نیستند برنمی‌گرداند.
    • BICYCLE: برای مثال، مسیرهای دوچرخه.
    • ‫PEDESTRIAN: برای مثال، پل‌ها و پیاده‌روهای مخصوص عابر پیاده.

فیلدهای دیگر

برای فیلدهای دیگری که می‌توانید هنگام ایجاد وسیله نقلیه تنظیم کنید، به‌روزرسانی فیلدهای وسیله نقلیه را ببینید.

نمونه ایجاد خودرو

برای ایجاد وسیله نقلیه، می‌توانید از کتابخانه Java gRPC یا REST استفاده کنید. برای فهرست کامل زبان‌های پشتیبانی‌شده، به کتابخانه‌های مشتری برای خدمات سفر درخواستی مراجعه کنید.

مقدار برگشتی از CreateVehicle، نهاد Vehicle ایجادشده است.

جاوا

static final String PROJECT_ID = "project-id";

VehicleServiceBlockingStub vehicleService =
    VehicleService.newBlockingStub(channel);

String parent = "providers/" + PROJECT_ID;
Vehicle vehicle = Vehicle.newBuilder()
    .setVehicleState(VehicleState.OFFLINE)  // Initial state
    .addSupportedTripTypes(TripType.EXCLUSIVE)
    .setMaximumCapacity(4)
    .setVehicleType(VehicleType.newBuilder().setCategory(VehicleType.Category.AUTO))
    .addAttributes(VehicleAttribute.newBuilder()
        .setKey("on_trip").setValue("false"))  // Opaque to the Fleet Engine
    // Add .setBackToBackEnabled(true) to make this vehicle eligible for trip
    // matching while even if it is on a trip.  By default this is disabled.
    .build();

CreateVehicleRequest createVehicleRequest =
    CreateVehicleRequest.newBuilder()  // no need for the header
        .setParent(parent)
        .setVehicleId("vid-8241890")  // Vehicle ID assigned by Rideshare or Delivery Provider
        .setVehicle(vehicle)  // Initial state
        .build();

// In this case, the Vehicle is being created in the OFFLINE state and
// no initial position is being provided.  When the Driver App checks
// in with the Rideshare or Delivery Provider, the state can be set to ONLINE and
// the Driver App will update the Vehicle Location.

try {
  Vehicle createdVehicle =
      vehicleService.createVehicle(createVehicleRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}
// If no Exception, Vehicle created successfully.

REST

curl -X POST \
  "https://fleetengine.googleapis.com/v1/providers/project-id/vehicles?vehicleId=vid-8241890" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  --data-binary @- << EOM
{
    "vehicleState": "OFFLINE",
    "supportedTripTypes": ["EXCLUSIVE"],
    "maximumCapacity": 4,
    "vehicleType": {"category": "AUTO"},
    "attributes": [{"key": "on_trip", "value": "false"}]
}
EOM

مرجع providers.vehicles.create را ببینید.

قدم بعدی چیست