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

برای ایجاد خودرو در 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.

استراحت

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 را ببینید.

قدم بعدی چیست