যানবাহন অনুসন্ধান করুন

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

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

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

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

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

  1. নির্ধারিত ট্রিপের উপর ভিত্তি করে একটি SearchVehiclesRequest তৈরি করুন।
  2. তৈরি করা অনুরোধের সাথে SearchVehicles API ( vehicleService.searchVehicles ) এ কল করুন।
  3. 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টি ফেরত যাওয়ার জন্য সর্বাধিক যানবাহন।
ফিল্টার ঐচ্ছিক যানবাহন অনুসন্ধান করার সময় প্রয়োগ করার জন্য একটি ফিল্টার প্রশ্ন।

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

অনুসন্ধান যানবাহন অনুরোধ পরিস্থিতিতে

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

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

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

নিম্নলিখিত তারা ফেরত যানবাহন দ্বারা বিভিন্ন অনুরোধ প্রদর্শন করে.

ফেরত যান 4

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

ফেরত যান 3 এবং 4

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

যানবাহন 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৷

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

ফিল্টার প্রশ্ন ব্যবহার করুন

SearchVehicles এবং ListVehicles ফিল্টার ক্যোয়ারী ব্যবহার করে যানবাহনের বৈশিষ্ট্যগুলিতে ফিল্টারিং সমর্থন করে।

ফিল্টার ক্যোয়ারীগুলি শুধুমাত্র যানবাহনের জন্য কাস্টম বৈশিষ্ট্যগুলিতে ফিল্টারিং সমর্থন করে এবং অন্যান্য ক্ষেত্রের জন্য ব্যবহার করা যাবে না। minimum_capacity বা vehicle_types এর মতো অন্যান্য ক্ষেত্রের মানদণ্ড অন্তর্ভুক্ত এমন অনুসন্ধানে ব্যবহার করা হলে, ফিল্টার ক্যোয়ারী একটি AND ক্লজ হিসাবে কাজ করে।

উদাহরণস্বরূপ, আপনি যদি এমন একটি যানের সন্ধান করেন যার ন্যূনতম ধারণক্ষমতা 6 এবং একটি attributes ফিল্টার যেমন পোষা-বান্ধব, আপনার মানদণ্ড শুধুমাত্র সেই যানবাহনগুলিকে ফেরত দেবে যেগুলি উভয়ই পোষা-বান্ধব এবং কমপক্ষে 6 জন যাত্রী বহন করতে পারে৷

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

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

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

এরপর কি