پیدا کردن رانندگان نزدیک

به عنوان بخشی از راه حل سواری و تحویل بر اساس تقاضا، قابلیت برنامه ریزی مسیر و ارسال به شما امکان می دهد با ارائه یک SearchVehicles API رانندگان نزدیک را پیدا کنید.

SearchVehicles API به شما امکان می‌دهد درایورهای موجود در نزدیکی خود را در برنامه مصرف‌کننده Rides و Deliveries Solution خود بیابید که برای کارهایی مانند سواری یا درخواست تحویل مناسب‌تر هستند. SearchVehicles API فهرست رتبه بندی شده ای از رانندگان را برمی گرداند که ویژگی های وظیفه را با ویژگی های وسایل نقلیه در ناوگان شما مطابقت می دهند.

ویژگی های وظیفه می تواند شامل موارد زیر باشد:

  • مکان های تحویل و تحویل
  • وسیله نقلیه و انواع سفر درخواستی
  • ظرفیت مورد نیاز
  • سایر ویژگی های تطبیق مورد نیاز

ویژگی های خودرو می تواند شامل موارد زیر باشد:

  • آخرین مکان شناخته شده یک وسیله نقلیه
  • وضعیت، نوع یا ظرفیت وسیله نقلیه
  • سایر ویژگی های سفارشی

رتبه بندی بر اساس انتخاب شما از بین ETA، فاصله یا فاصله خط مستقیم از نقطه تحویل مرتب می شود.

توجه داشته باشید که برای استفاده از SearchVehicles API باید از امتیازات کاربر Fleet Engine Service Super User یا Consumer SDK User برخوردار باشید. برای اطلاعات بیشتر، احراز هویت و مجوز را ببینید.

با استفاده از SearchVehicles API

برای استفاده از SearchVehicles API:

  • یک SearchVehiclesRequest بر اساس وظیفه ای که قرار است اختصاص داده شود بسازید.
  • با درخواست ساخته شده، SearchVehicles API ( vehicleService.searchVehicles ) را فراخوانی کنید.
  • SearchVehicleResponse برگشتی از API را پردازش کنید.

فیلدهای Search VehiclesRequest

برای ساخت SearchVehiclesRequest از فیلدهای ویژگی مورد نیاز زیر استفاده کنید:

رشته شرح
والدین ضروری . باید در قالب ارائه دهندگان/{provider} باشد. ارائه‌دهنده باید شناسه پروژه (به عنوان مثال، نمونه-ابر-پروژه) پروژه Google Cloud باشد که حساب سرویسی که این تماس را انجام می‌دهد عضو آن است.
خودرو_انواع ضروری . انواع وسایل نقلیه درخواستی، AUTO، TWO_WHEELER، TAXI، TRUCK، BICYCLE یا PEDESTRIAN.
انواع_سفر ضروری . یا انحصاری (یک سفر فعال در هر زمان برای هر راننده) یا به اشتراک گذاشته شده (یک یا چند سفر در یک زمان برای هر راننده).
حداقل_ظرفیت ضروری . حداقل ظرفیت باقیمانده وسیله نقلیه برای یک کار جدید، چه برای مسافران و چه برای تحویل.
pickup_point ضروری . محل برداشت کار در مختصات lat/long.
dropoff_point اختیاری. مکان رها کردن کار در مختصات lat/long. اگر trip_types حاوی TripType.SHARED باشد، فیلد مورد نیاز است.
پیکاپ_شعاع_متر ضروری . شعاع بر حسب متر منطقه جستجوی وسیله نقلیه از نقطه وانت.
سفارش توسط ضروری . وسایل نقلیه را با یکی از موارد زیر سفارش دهید:
  • PICKUP_POINT_ETA، ETA خودرو در نقطه تحویل.
  • PICKUP_POINT_DISTANCE، فاصله بین وسیله نقلیه و نقطه تحویل.
  • DROPOFF_POINT_ETA، ETA وسیله نقلیه برای تکمیل سفر در نقطه تخلیه.
  • PICKUP_POINT_STRAIGHT_DISTANCE، فاصله خط مستقیم (نه در مسیر) بین وسیله نقلیه و نقطه تحویل.
شمردن ضروری . حداکثر تعداد وسایل نقلیه برای بازگشت از 1 تا 50.

برای مشاهده مجموعه کامل فیلدهای SearchVehicleRequest به مستندات مرجع مراجعه کنید.

Search Vehicles درخواست نمونه

این بخش نمونه هایی از نحوه ساخت SearchVehiclesRequest را نشان می دهد.

به عنوان مثال، فرض کنید یک وظیفه پیکاپ در RestaurantX و چهار وسیله نقلیه دارید:

  • وسیله نقلیه 1 که 3500 متر از RestaurantX فاصله دارد.
  • وسیله نقلیه 2 که در فاصله 100 متری رستوران ایکس قرار دارد و دارای یک سفر فعال با پیکاپ و تحویل در مکان های A و B است.
  • وسیله نقلیه 3 که 200 متر از رستوران ایکس فاصله دارد و یک بار دیگر از آن فاصله دارد.
  • وسیله نقلیه 4 که 1000 متر با RestaurantX فاصله دارد.

SearchVehiclesRequest زیر خودروی 4 را برمی گرداند:

Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA

SearchVehiclesRequest زیر خودرو 3 و 4 را برمی گرداند:

Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled

SearchVehiclesRequest زیر خودروی 2، 3 و 4 را برمی گرداند:

Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL

فیلدهای Search Vehicles Response

یک SearchVehiclesResponse شامل لیستی از موجودیت‌های VehicleMatch است که بر اساس ویژگی order_by مشخص شده در SearchVehiclesRequest رتبه‌بندی می‌شود. هر نهاد VehicleMatch دارای فیلدهای زیر است:

رشته شرح
وسیله نقلیه شیء Vehicle ، از جمله خودرو_id و ویژگی Vehicle .
وسیله_پیکاپ_eta ETA خودرو در محل پیکاپ وظیفه جدید. این ETA رانندگی است.
وسیله_پیکاپ_فاصله_سنج فاصله بین وسیله نقلیه و محل وانت کار جدید بر حسب متر.
وسیله_پیکاپ_خط_مستقیم_متر_فاصله_سنج فاصله خط مستقیم بر حسب متر بین وسیله نقلیه و محل وانت کار جدید.
automjet_افت_تا مهر زمان ETA خودرو در محل وانت کار جدید. توجه داشته باشید که ETA ETA محرک است.
وسیله_سفر_نقاط راه فهرستی از نقاط بین راهی، از جمله نقاط تحویل و تحویل، برای سفرهای فعالی که در حال حاضر به خودرو اختصاص داده شده است.
وسیله_کبریت_نوع نوع سفر وسیله نقلیه، EXCLUSIVE، BACK_TO_BACK، CARPOOL، یا CARPOOL_BACK_TO_BACK.

مثال Search Vehicles

مثال زیر نحوه استفاده از SearchVehicles API را نشان می دهد:

static final String PROJECT_ID = "project-id";

VehicleServiceBlockingStub vehicleService =
    VehicleService.newBlockingStub(channel);

String parent = "providers/" + PROJECT_ID;
SearchVehiclesRequest searchVehiclesRequest = SearchVehiclesRequest.newBuilder()
    .setParent(parent)
    .setPickupPoint( // Grand Indonesia East Mall
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
    .setDropoffPoint( // Balai Sidang Jkt Convention Center
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder().setLatitude(-6.213796).setLongitude(106.807195)))
    .setPickupRadiusMeters(2000)
    .setCount(10)
    .setMinimumCapacity(2)
    .addTripTypes(TripType.EXCLUSIVE)
    .addVehicleTypes(VehicleType.newBuilder().setCategory(Category.AUTO).build())
    .setCurrentTripsPresent(CurrentTripsPresent.ANY)
    .setFilter("attributes.on_trip=\"false\"")
    .setOrderBy(VehicleMatchOrder.PICKUP_POINT_ETA)
    .build();


try {
  SearchVehiclesResponse searchVehiclesResponse =
      vehicleService.searchVehicles(searchVehiclesRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case NOT_FOUND:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

List<VehicleMatch> vehicleMatches =
    searchVehicleResponse.getMatchesList();

// Each VehicleMatch contains a Vehicle entity and information about the
// distance and ETA to the pickup point and drop-off point.