কাছাকাছি ড্রাইভার খোঁজা

আপনার অন-ডিমান্ড রাইডস এবং ডেলিভারি সলিউশনের অংশ হিসাবে, রুট প্ল্যানিং এবং ডিসপ্যাচ ক্ষমতা আপনাকে একটি SearchVehicles API প্রদান করে কাছাকাছি ড্রাইভার খুঁজে পেতে দেয়।

SearchVehicles API আপনাকে আপনার অন-ডিমান্ড রাইডস এবং ডেলিভারি সলিউশন কনজিউমার অ্যাপে পাওয়া আশেপাশের ড্রাইভারদের খুঁজে পেতে দেয় যারা রাইড বা ডেলিভারির অনুরোধের মতো কাজের জন্য সবচেয়ে উপযুক্ত। SearchVehicles API আপনার বহরে থাকা যানবাহনের বৈশিষ্ট্যগুলির সাথে টাস্ক অ্যাট্রিবিউটের সাথে মিলে যাওয়া ড্রাইভারগুলির একটি র‌্যাঙ্ক করা তালিকা প্রদান করে৷

টাস্ক বৈশিষ্ট্য অন্তর্ভুক্ত করতে পারে:

  • পিকআপ এবং ড্রপ-অফ অবস্থান
  • অনুরোধ করা যানবাহন এবং ভ্রমণের ধরন
  • প্রয়োজনীয় ক্ষমতা
  • অন্যান্য প্রয়োজনীয় মিল বৈশিষ্ট্য

যানবাহনের বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করতে পারে:

  • একটি গাড়ির সর্বশেষ পরিচিত অবস্থান
  • গাড়ির অবস্থা, প্রকার বা ক্ষমতা
  • অন্যান্য কাস্টম বৈশিষ্ট্য

র‌্যাঙ্কিং আপনার পছন্দ অনুযায়ী নির্ধারিত হয় ETA, দূরত্ব বা পিকআপ পয়েন্ট থেকে সরলরেখার দূরত্ব।

মনে রাখবেন যে SearchVehicles API ব্যবহার করার জন্য আপনার ফ্লিট ইঞ্জিন পরিষেবা সুপার ইউজার বা কনজিউমার SDK ব্যবহারকারীর বিশেষাধিকার থাকতে হবে। আরও তথ্যের জন্য, প্রমাণীকরণ এবং অনুমোদন দেখুন।

SearchVehicles API ব্যবহার করে

SearchVehicles API ব্যবহার করতে:

  • বরাদ্দ করা টাস্কের উপর ভিত্তি করে একটি SearchVehiclesRequest তৈরি করুন।
  • তৈরি করা অনুরোধের সাথে SearchVehicles API ( vehicleService.searchVehicles ) এ কল করুন।
  • API থেকে ফিরে আসা SearchVehicleResponse প্রক্রিয়া করুন।

অনুসন্ধান যানবাহন অনুরোধ ক্ষেত্র

একটি SearchVehiclesRequest তৈরি করতে নিম্নলিখিত প্রয়োজনীয় বৈশিষ্ট্য ক্ষেত্রগুলি ব্যবহার করুন:

মাঠ বর্ণনা
অভিভাবক প্রয়োজন ফর্ম্যাট প্রদানকারী/{provider}-এর মধ্যে হতে হবে। প্রদানকারীকে অবশ্যই Google ক্লাউড প্রজেক্টের প্রজেক্ট আইডি (উদাহরণস্বরূপ, নমুনা-ক্লাউড-প্রকল্প) হতে হবে যার পরিষেবা অ্যাকাউন্টটি এই কল করছে সদস্য।
যানবাহনের_প্রকার প্রয়োজন অনুরোধ করা যানবাহনের প্রকার, হয় AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE, বা পথচারী৷
ট্রিপ_টাইপ প্রয়োজন হয় এক্সক্লুসিভ (ড্রাইভার প্রতি একবারে একটি সক্রিয় ট্রিপ) অথবা শেয়ার করা (ড্রাইভার প্রতি এক সময়ে এক বা একাধিক ট্রিপ)।
সর্বনিম্ন_ক্ষমতা প্রয়োজন যাত্রী বা ডেলিভারির জন্য একটি নতুন কাজের জন্য গাড়ির ন্যূনতম অবশিষ্ট ক্ষমতা।
সংগ্রহের স্থান প্রয়োজন ল্যাট/লং কোঅর্ডিনেটে টাস্কের পিকআপ অবস্থান।
ড্রপঅফ_পয়েন্ট ঐচ্ছিক। ল্যাট/লং কোঅর্ডিনেটে টাস্কের ড্রপ-অফ অবস্থান। যদি trip_types-এ TripType.SHARED থাকে তাহলে ফিল্ডের প্রয়োজন হয়।
পিকআপ_ব্যাসার্ধ_মিটার প্রয়োজন পিকআপ পয়েন্ট থেকে যানবাহন অনুসন্ধান এলাকার মিটারের ব্যাসার্ধ।
order_by প্রয়োজন নিম্নলিখিত একটি দ্বারা যানবাহন অর্ডার করুন:
  • PICKUP_POINT_ETA, পিকআপ পয়েন্টে গাড়ির ETA।
  • PICKUP_POINT_DISTANCE, গাড়ি এবং পিকআপ পয়েন্টের মধ্যে দূরত্ব৷
  • DROPOFF_POINT_ETA, ড্রপ-অফ পয়েন্টে ট্রিপ সম্পূর্ণ করার জন্য গাড়ির ETA।
  • PICKUP_POINT_STRAIGHT_DISTANCE, গাড়ি এবং পিকআপ পয়েন্টের মধ্যে সরলরেখার দূরত্ব (রুটে নয়)।
গণনা প্রয়োজন 1 থেকে 50টি ফেরত যাওয়ার জন্য সর্বাধিক যানবাহন।

SearchVehicleRequestfields- এর সম্পূর্ণ সেট দেখতে রেফারেন্স ডকুমেন্টেশন পড়ুন।

অনুসন্ধান যানবাহন অনুরোধের উদাহরণ

এই বিভাগটি কিভাবে একটি SearchVehiclesRequest তৈরি করতে হয় তার উদাহরণ দেখায়।

উদাহরণ স্বরূপ, ধরুন রেস্তোরাঁএক্স এবং চারটি গাড়িতে আপনার একটি পিকআপ টাস্ক বরাদ্দ করা আছে:

  • যানবাহন 1 , যা রেস্টুরেন্টএক্স থেকে 3500মি দূরে।
  • যানবাহন 2 , যা রেস্তোরাঁএক্স থেকে 100 মিটার দূরে এবং একটি পিকআপ সহ একটি সক্রিয় ট্রিপ রয়েছে A এবং B অবস্থানে।
  • যানবাহন 3 , যা রেস্তোরাঁএক্স থেকে 200 মিটার দূরে এবং একটি ড্রপ অফ খুব দূরে বাকি আছে।
  • যানবাহন 4 , যা রেস্টুরেন্টএক্স থেকে 1000মি দূরে।

নিম্নলিখিত 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

যানবাহন প্রতিক্রিয়া ক্ষেত্র অনুসন্ধান করুন

একটি SearchVehiclesResponse VehicleMatch সত্তার একটি তালিকা থাকে, যা SearchVehiclesRequest এ নির্দিষ্ট অর্ডার_বাই অ্যাট্রিবিউট দ্বারা র‍্যাঙ্ক করা হয়। প্রতিটি VehicleMatch সত্তার নিম্নলিখিত ক্ষেত্র রয়েছে:

মাঠ বর্ণনা
যানবাহন যানবাহনের আইডি এবং Vehicle বৈশিষ্ট্য সহ Vehicle বস্তু।
যানবাহন_পিকআপ_ইটা নতুন টাস্কের পিকআপ লোকেশনে গাড়ির ETA। এটি ড্রাইভিং ইটিএ।
যানবাহন_পিকআপ_দূরত্ব_মিটার নতুন টাস্কের গাড়ি এবং পিকআপ অবস্থানের মধ্যে দূরত্ব মিটার।
যানবাহন_পিকআপ_সরাসরি_রেখা_দূরত্ব_মিটার নতুন টাস্কের গাড়ি এবং পিকআপ অবস্থানের মধ্যে মিটারে সরল-রেখার দূরত্ব।
যানবাহন_ড্রপঅফ_ইটা নতুন টাস্কের পিকআপ লোকেশনে গাড়ির ETA-এর টাইমস্ট্যাম্প । মনে রাখবেন যে ETA হল ড্রাইভিং ETA।
যানবাহন_ট্রিপস_ওয়েপয়েন্ট বর্তমানে গাড়িতে নির্ধারিত সক্রিয় ট্রিপের জন্য পিকআপ এবং ড্রপ-অফ পয়েন্ট সহ অবশিষ্ট ওয়েপয়েন্টের একটি তালিকা।
যানবাহন_ম্যাচ_টাইপ গাড়ির ট্রিপের ধরন, হয় EXCLUSIVE, BACK_TO_BACK, CARPOOL, অথবা CARPOOL_BACK_TO_BACK৷

অনুসন্ধান যানবাহন উদাহরণ

নিম্নলিখিত উদাহরণ দেখায় কিভাবে 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.