গাড়ি সার্চ করুন

মোবিলিটি অন-ডিমান্ড ট্রিপ পরিষেবার অংশ হিসেবে, আপনি SearchVehicles পদ্ধতি ব্যবহার করে আশেপাশের গাড়ি খুঁজে পেতে পারেন।

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

অ্যাট্রিবিউট সার্চ করুন গাড়ির অ্যাট্রিবিউট
  • পিক-আপ ও ড্রপ-অফ লোকেশন
  • অনুরোধ করা গাড়ি ও ট্রিপের ধরন
  • প্রয়োজনীয় ক্যাপাসিটি
  • ম্যাচ করতে হবে এমন অন্যান্য প্রয়োজনীয় অ্যাট্রিবিউট
  • গাড়ির শেষ জানা লোকেশন
  • গাড়ির অবস্থা, ধরন বা ক্যাপাসিটি
  • অন্যান্য কাস্টম অ্যাট্রিবিউট

SearchVehicles পদ্ধতি ব্যবহার করুন

SearchVehicles ব্যবহার করতে, এই সাধারণ প্রসেস অনুসরণ করুন:

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

SearchVehiclesRequest ফিল্ড

SearchVehiclesRequest তৈরি করতে নিম্নলিখিত প্রয়োজনীয় অ্যাট্রিবিউট ফিল্ড ব্যবহার করুন:

ফিল্ড বিবরণ
অভিভাবক প্রয়োজনীয়। providers/{provider} ফর্ম্যাটে হতে হবে। প্রোভাইডারকে অবশ্যই সেই Google Cloud প্রোজেক্টের প্রোজেক্ট আইডি হতে হবে, যেটির পরিষেবা অ্যাকাউন্ট এই কল করছে।
vehicle_types প্রয়োজনীয়। অনুরোধ করা গাড়ির ধরন, AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE বা PEDESTRIAN।
trip_types প্রয়োজনীয়। হয় এক্সক্লুসিভ (ড্রাইভার পিছু একবারে একটি অ্যাক্টিভ ট্রিপ) অথবা শেয়ার করা (ড্রাইভার পিছু একবারে এক বা একাধিক ট্রিপ)।
minimum_capacity প্রয়োজনীয়। যাত্রী বা ডেলিভারির জন্য নতুন ট্রিপের ক্ষেত্রে গাড়ির ন্যূনতম অবশিষ্ট ক্ষমতা।
pickup_point প্রয়োজনীয়। ট্রিপের পিক-আপ লোকেশন অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেটে।
dropoff_point ঐচ্ছিক। অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেটে ট্রিপের ড্রপ-অফ লোকেশন। trip_types-এ TripType.SHARED থাকলে ফিল্ডটি প্রয়োজন।
pickup_radius_meters প্রয়োজনীয়। পিক-আপ পয়েন্ট থেকে গাড়ি সার্চ করার এলাকার ব্যাসার্ধ মিটারে।
order_by প্রয়োজনীয়। নিচের যেকোনও একটি পদ্ধতি ব্যবহার করে গাড়ি অর্ডার করুন:
  • PICKUP_POINT_ETA, পিক-আপ পয়েন্টে গাড়ির ETA।
  • PICKUP_POINT_DISTANCE, গাড়ি ও পিক-আপ পয়েন্টের মধ্যে দূরত্ব।
  • DROPOFF_POINT_ETA, ড্রপ-অফ পয়েন্টে ট্রিপ সম্পূর্ণ করার জন্য গাড়ির আনুমানিক সময়।
  • PICKUP_POINT_STRAIGHT_DISTANCE, গাড়ি ও পিক-আপ পয়েন্টের মধ্যে সরলরেখায় দূরত্ব (রুটে নয়)।
গণনা প্রয়োজনীয়। ১ থেকে ৫০ পর্যন্ত সর্বাধিক সংখ্যক গাড়ি ফেরত দিতে হবে।
ফিল্টার করুন ঐচ্ছিক। গাড়ি খোঁজার সময় প্রয়োগ করার জন্য ফিল্টার কোয়েরি।
maximum_staleness ঐচ্ছিক। নির্দিষ্ট সময়সীমার মধ্যে Fleet Engine-এ লোকেশন আপডেট পাঠিয়েছে এমন গাড়ির মধ্যেই সার্চ সীমাবদ্ধ করে। এই ফিল্ড সেট করা না থাকলে, সার্ভার ডিফল্ট ভ্যালু হিসেবে পাঁচ মিনিট ব্যবহার করে।

SearchVehicleRequest ফিল্ডের সম্পূর্ণ সেট দেখতে রেফারেন্স ডকুমেন্টেশন দেখুন।

SearchVehiclesRequest পরিস্থিতি

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

যেমন, ধরুন কোনও গ্রাহক RestaurantX থেকে পিক-আপ চান, এবং আপনার কাছে চারটি গাড়ি আছে:

  • গাড়ি ১: RestaurantX থেকে ৩৫০০ মিটার দূরে।
  • গাড়ি ২: RestaurantX থেকে ১০০ মিটার দূরে আছে এবং লোকেশন A ও B-তে পিক-আপ ও ড্রপ-অফ সহ অ্যাক্টিভ ট্রিপে আছে।
  • গাড়ি ৩: RestaurantX থেকে ২০০ মিটার দূরে, একটি ড্রপ-অফ লোকেশন আছে যা অনেক দূরে অবস্থিত।
  • গাড়ি ৪: RestaurantX থেকে ১০০০ মিটার দূরে।

গাড়ির মাধ্যমে করা বিভিন্ন অনুরোধ নিচে দেখানো হয়েছে।

Returns Vehicle 4

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

গাড়ি ৩ ও ৪ ফেরত দেয়

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

Returns Vehicle 2, 3, and 4

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

SearchVehiclesResponse ফিল্ড

SearchVehiclesResponse-এ VehicleMatch এন্টিটির তালিকা থাকে, যা SearchVehiclesRequest-এ নির্দিষ্ট করা order_by অ্যাট্রিবিউট অনুযায়ী র‍্যাঙ্ক করা হয়। প্রতিটি VehicleMatch এন্টিটির নিম্নলিখিত ফিল্ড আছে:

ফিল্ড বিবরণ
গাড়ি Vehicle অবজেক্ট, যার মধ্যে vehicle_id ও Vehicle অ্যাট্রিবিউট রয়েছে।
vehicle_pickup_eta এই ট্রিপটি যদি এখনই গাড়িটিকে অ্যাসাইন করা হয়, তাহলে পিক-আপ লোকেশনে গাড়ির ETA।
vehicle_pickup_distance_meter নতুন ট্রিপের পিক-আপ লোকেশন ও গাড়ির মধ্যে দূরত্ব, মিটারে।
vehicle_pickup_straight_line_distance_meter গাড়ি এবং নতুন ট্রিপের পিক-আপ লোকেশনের মধ্যে মিটারে সরলরৈখিক দূরত্ব।
vehicle_dropoff_eta এই ট্রিপটি এখনই গাড়িটিকে অ্যাসাইন করা হলে, ড্রপ-অফ লোকেশনে গাড়ির আনুমানিক সময়।
vehicle_trips_waypoints গাড়িতে বর্তমানে অ্যাসাইন করা অ্যাক্টিভ ট্রিপের জন্য পিক-আপ ও ড্রপ-অফ পয়েন্ট সহ বাকি ওয়েপয়েন্টের তালিকা।
vehicle_match_type গাড়ির ট্রিপের ধরন, যেমন এক্সক্লুসিভ, ব্যাক-টু-ব্যাক, কারপুল বা কারপুল ব্যাক-টু-ব্যাক।

VehicleMatch ফিল্ডের সম্পূর্ণ তালিকার জন্য, দেখুন:

ফিল্টার কোয়েরি ব্যবহার করা

SearchVehicles এবং ListVehicles ফিল্টার কোয়েরি ব্যবহার করে গাড়ির অ্যাট্রিবিউটের উপর ফিল্টার করাকে সাপোর্ট করে।

ফিল্টার কোয়েরি শুধুমাত্র গাড়ির কাস্টম অ্যাট্রিবিউটের উপর ফিল্টারিং সমর্থন করে এবং অন্যান্য ফিল্ডের জন্য ব্যবহার করা যাবে না। অন্য ফিল্ডের মাপকাঠি সহ সার্চে ব্যবহার করা হলে, যেমন minimum_capacity বা vehicle_types, ফিল্টার কোয়েরি AND ক্লজ হিসেবে কাজ করে।

যেমন, আপনি যদি এমন কোনও গাড়ির জন্য সার্চ করেন যার ন্যূনতম ৬টি সিট আছে এবং attributes ফিল্টার করেন, যেমন পোষ্য-বান্ধব, তাহলে আপনার মানদণ্ড শুধুমাত্র সেইসব গাড়ি দেখাবে যেগুলি পোষ্য-বান্ধব এবং কমপক্ষে ৬ জন যাত্রীকে নিয়ে যেতে পারে।

ফিল্টার কোয়েরি সিনট্যাক্সের জন্য, উদাহরণ হিসেবে AIP-160 দেখুন। গাড়ির অ্যাট্রিবিউট তৈরি করা সংক্রান্ত বিবরণের জন্য, গাড়ির ফিল্ড আপডেট করা নির্দেশিকায় গাড়ির অ্যাট্রিবিউট ফিল্ড দেখুন।

দুটিতেই কোনও ভ্যালু উল্লেখ করা থাকলে, আপনি একটি সমস্যার মেসেজ পাবেন।

SearchVehicles Example

নিচে দেওয়া উদাহরণ থেকে বোঝা যায় যে কীভাবে SearchVehicles API ব্যবহার করে Java gRPC লাইব্রেরি ব্যবহার করতে হয়। যেসব ভাষায় কাজ করে তার সম্পূর্ণ তালিকা দেখতে, অন-ডিমান্ড ট্রিপ পরিষেবার জন্য ক্লায়েন্ট লাইব্রেরি দেখুন।

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.

এর পরে কী করতে হবে