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

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

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

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

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

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

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

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

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

মাঠ বিবরণ
পিতামাতা আবশ্যক । provider/{provider} ফর্ম্যাটে থাকতে হবে। provider অবশ্যই Google Cloud Project এর Project ID হতে হবে যার পরিষেবা অ্যাকাউন্টটি এই কলটি করছে।
যানবাহনের ধরণ প্রয়োজনীয় । অনুরোধ করা যানবাহনের ধরণ, হয় অটো, টু_হুইলার, ট্যাক্সি, ট্রাক, সাইকেল, অথবা পথচারী।
ট্রিপ_টাইপস আবশ্যক । হয় এক্সক্লুসিভ (প্রতি ড্রাইভারের জন্য একবারে একটি সক্রিয় ট্রিপ) অথবা শেয়ার্ড (প্রতি ড্রাইভারের জন্য একবারে এক বা একাধিক ট্রিপ)।
সর্বনিম্ন_ক্ষমতা প্রয়োজনীয় । যাত্রী বা ডেলিভারির জন্য নতুন ট্রিপের জন্য গাড়ির ন্যূনতম অবশিষ্ট ধারণক্ষমতা।
পিকআপ_পয়েন্ট প্রয়োজনীয় । ট্রিপের পিকআপের অবস্থান অক্ষাংশ/দীর্ঘ স্থানাঙ্কে।
ড্রপঅফ_পয়েন্ট ঐচ্ছিক। অক্ষ/দীর্ঘ স্থানাঙ্কে ট্রিপের ড্রপ-অফ অবস্থান। যদি trip_types-এ TripType.SHARED থাকে তবে ক্ষেত্রটি প্রয়োজন।
পিকআপ_ব্যাসার্ধ_মিটার প্রয়োজনীয় । পিকআপ পয়েন্ট থেকে যানবাহন অনুসন্ধান এলাকার ব্যাসার্ধ মিটারে।
অর্ডার_বাই প্রয়োজনীয় । নিম্নলিখিত যেকোন একটির মাধ্যমে যানবাহন অর্ডার করুন:
  • PICKUP_POINT_ETA, পিকআপ পয়েন্টে গাড়ির ETA।
  • PICKUP_POINT_DISTANCE, গাড়ি এবং পিকআপ পয়েন্টের মধ্যে দূরত্ব।
  • DROPOFF_POINT_ETA, গাড়ির ড্রপ-অফ পয়েন্টে ট্রিপ সম্পূর্ণ করার জন্য ETA।
  • PICKUP_POINT_STRAIGHT_DISTANCE, গাড়ি এবং পিকআপ পয়েন্টের মধ্যে সরলরেখার দূরত্ব (রুটে নয়)।
গণনা প্রয়োজনীয় । ফেরার জন্য সর্বোচ্চ যানবাহনের সংখ্যা ১ থেকে ৫০টি।
ফিল্টার ঐচ্ছিক । যানবাহন অনুসন্ধানের সময় প্রয়োগ করার জন্য একটি ফিল্টার কোয়েরি।
সর্বোচ্চ_অচলতা ঐচ্ছিক । শুধুমাত্র সেইসব যানবাহনের মধ্যে অনুসন্ধান সীমাবদ্ধ করে যারা নির্দিষ্ট সময়ের মধ্যে ফ্লিট ইঞ্জিনে অবস্থান আপডেট পাঠিয়েছে। যদি এই ক্ষেত্রটি সেট না করা থাকে, তাহলে সার্ভার ডিফল্ট মান হিসেবে পাঁচ মিনিট ব্যবহার করবে।

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

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

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

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

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

নিম্নলিখিতটি তাদের ফেরত পাঠানো গাড়ির বিভিন্ন অনুরোধ প্রদর্শন করে।

ফেরত যানবাহন ৪

     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
    

যানবাহন ২, ৩, এবং ৪ ফেরত দেয়

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

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

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

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

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

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

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

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

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

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

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

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

এরপর কি?