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

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

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

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

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

  • vehicle_state : به صورت پیش‌فرض روی unknown است، اما باید روی ONLINE یا OFFLINE تنظیم شود. برای اطلاعات بیشتر در مورد تنظیم فیلد وضعیت خودرو به Update vehicle fields مراجعه کنید.
  • supported_trip_types : به صورت پیش‌فرض روی ناشناخته است، اما باید روی اشتراکی، انحصاری یا هر دو تنظیم شود. برای جزئیات بیشتر به بخش انواع سفر در راهنمای سفرهای درخواستی مراجعه کنید.
  • maximum_capacity : تعداد مسافرانی که وسیله نقلیه می‌تواند حمل کند، که طبق تعریف، راننده را شامل نمی‌شود.
  • vehicle_type : مقادیر عبارتند از AUTO ، TAXI ، TRUCK ، TWO_WHEELER ، BICYCLE یا PEDESTRIAN . می‌توان از آن برای فیلتر کردن وسایل نقلیه برای جستجوی وسایل نقلیه استفاده کرد. این امر همچنین بر ETA و محاسبات مسیر تأثیر می‌گذارد. Fleet Engine مسیرها و محاسبات سفر را مطابق با نحوه سفر بر اساس گروه‌های نوع وسیله نقلیه زیر ارائه می‌دهد:
    • AUTO ، TAXI یا TRUCK : برای مثال بزرگراه‌ها.
    • TWO_WHEELER : برای مثال، مسیرهایی را که در آنها وسایل نقلیه دوچرخ مجاز نیستند، برنمی‌گرداند.
    • BICYCLE : به عنوان مثال، مسیرهای دوچرخه‌سواری.
    • PEDESTRIAN : به عنوان مثال پل‌ها و مسیرهای مخصوص عابر پیاده.

سایر زمینه‌ها

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

مثال ایجاد وسیله نقلیه

مقداری که از 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 مراجعه کنید.

قدم بعدی چیست؟