মোবিলিটি অন-ডিমান্ড ট্রিপ পরিষেবার অংশ হিসেবে, আপনি SearchVehicles পদ্ধতি ব্যবহার করে
আশেপাশের গাড়ি খুঁজে পেতে পারেন।
SearchVehicles পদ্ধতি আপনাকে গ্রাহকের মোবাইল অ্যাপে কাছাকাছি উপলভ্য এমন গাড়ি খুঁজে পেতে সাহায্য করে যা নির্দিষ্ট রাইড বা ডেলিভারির অনুরোধের জন্য সবচেয়ে উপযুক্ত। SearchVehicles API এমন সব গাড়ির র্যাঙ্ক করা তালিকা দেখায় যেগুলির
অ্যাট্রিবিউট অনুরোধ করা ট্রিপের অ্যাট্রিবিউটের সাথে মিলে যায়। আপনার বেছে নেওয়া ETA, দূরত্ব বা পিক-আপ পয়েন্ট থেকে সরলরেখায় দূরত্বের ভিত্তিতে
র্যাঙ্কিং সাজানো হয়।
| অ্যাট্রিবিউট সার্চ করুন | গাড়ির অ্যাট্রিবিউট |
|---|---|
|
|
SearchVehicles পদ্ধতি ব্যবহার করুন
SearchVehicles ব্যবহার করতে, এই সাধারণ প্রসেস অনুসরণ করুন:
- অ্যাসাইন করা ট্রিপের উপর ভিত্তি করে একটি
SearchVehiclesRequestতৈরি করুন। - তৈরি করা অনুরোধের মাধ্যমে
SearchVehiclesAPI (vehicleService.searchVehicles) কল করুন। - 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 | প্রয়োজনীয়। নিচের যেকোনও একটি বিকল্প অনুযায়ী গাড়ি সাজান:
|
| গণনা | প্রয়োজনীয়। ১ থেকে ৫০ পর্যন্ত সর্বাধিক সংখ্যক গাড়ি ফেরত দিতে হবে। |
| ফিল্টার করুন | ঐচ্ছিক। গাড়ি সার্চ করার সময় প্রয়োগ করার জন্য একটি ফিল্টার কোয়েরি। |
| maximum_staleness | ঐচ্ছিক। নির্দিষ্ট সময়সীমার মধ্যে Fleet Engine-এ লোকেশন আপডেট পাঠিয়েছে এমন গাড়িগুলিকেই শুধু সার্চে দেখায়। এই ফিল্ড সেট করা না থাকলে, সার্ভার ডিফল্ট ভ্যালু হিসেবে পাঁচ মিনিট ব্যবহার করে। |
SearchVehicleRequest ফিল্ডের সম্পূর্ণ সেট দেখতে রেফারেন্স ডকুমেন্টেশন দেখুন।
SearchVehiclesRequest সিনারিও
এই বিভাগে SearchVehiclesRequest কীভাবে তৈরি করতে হয় তার উদাহরণ দেখানো হয়েছে।
যেমন, ধরুন কোনও গ্রাহক RestaurantX থেকে পিক-আপ চান, এবং আপনার কাছে চারটি গাড়ি আছে:
- গাড়ি ১: RestaurantX থেকে ৩৫০০ মিটার দূরে।
- গাড়ি ২: RestaurantX থেকে ১০০ মিটার দূরে, একটি অ্যাক্টিভ ট্রিপে আছে, পিক-আপ ও ড্রপ-অফ লোকেশন যথাক্রমে A ও B.
- গাড়ি ৩: RestaurantX থেকে ২০০ মিটার দূরে, একটি ড্রপ-অফ বাকি আছে যা অনেক দূরে।
- গাড়ি ৪: RestaurantX থেকে ১০০০ মিটার দূরে।
গাড়িটি যে ধরনের অনুরোধ ফেরত পাঠায়, তার বিভিন্ন উদাহরণ নিচে দেওয়া হল।
গাড়ি ৪ ফেরত দেয়
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 | এই ট্রিপটি এখনই গাড়ির জন্য অ্যাসাইন করা হলে, ড্রপ-অফ লোকেশনে গাড়ির ETA। |
| vehicle_trips_waypoints | গাড়িতে বর্তমানে অ্যাসাইন করা অ্যাক্টিভ ট্রিপের জন্য পিক-আপ ও ড্রপ-অফ পয়েন্ট সহ বাকি থাকা ওয়েপয়েন্টের তালিকা। |
| vehicle_match_type | গাড়ির ট্রিপের ধরন, EXCLUSIVE, BACK_TO_BACK, CARPOOL বা CARPOOL_BACK_TO_BACK-এর মধ্যে যেকোনও একটি। |
VehicleMatch ফিল্ডের সম্পূর্ণ তালিকা দেখতে, এখানে যান:
VehicleMatch message(gRPC)VehicleMatch resource(REST)
ফিল্টার কোয়েরি ব্যবহার করুন
SearchVehicles এবং ListVehicles ফিল্টার কোয়েরি ব্যবহার করে
গাড়ির অ্যাট্রিবিউটের উপর ফিল্টার করার সুবিধা দেয়।
ফিল্টার কোয়েরি শুধুমাত্র গাড়ির কাস্টম অ্যাট্রিবিউটের উপর ফিল্টারিং সমর্থন করে এবং
অন্যান্য ফিল্ডের জন্য ব্যবহার করা যাবে না। অন্য ফিল্ডের মাপকাঠি সহ সার্চে ব্যবহার করা হলে, যেমন minimum_capacity বা vehicle_types, ফিল্টার কোয়েরি
AND ক্লজ হিসেবে কাজ করে।
যেমন, আপনি যদি এমন কোনও গাড়ি সার্চ করেন যাতে কমপক্ষে ৬ জন বসতে পারেন এবং
পোষ্য-বান্ধবের মতো attributes ফিল্টার করেন, তাহলে আপনার সার্চের ফলাফলে শুধু
সেইসব গাড়িই দেখানো হবে যেগুলি পোষ্য-বান্ধব এবং কমপক্ষে ৬ জন যাত্রী বহন করতে পারে।
ফিল্টার কোয়েরি সিনট্যাক্সের জন্য, উদাহরণ হিসেবে AIP-160 দেখুন। গাড়ির অ্যাট্রিবিউট তৈরি করার ব্যাপারে বিস্তারিত জানতে, গাড়ির ফিল্ড আপডেট করুন গাইডে গাড়ির অ্যাট্রিবিউট ফিল্ড দেখুন।
SearchVehicles Example
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.