একটি কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ বৃত্তের কেন্দ্র বিন্দুর অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক এবং মিটার ব্যাসার্ধ দ্বারা সংজ্ঞায়িত একটি বৃত্ত হিসাবে নির্দিষ্ট করা অঞ্চলটিকে ইনপুট হিসাবে নেয়৷ অনুরোধটি নির্দিষ্ট অনুসন্ধান এলাকার মধ্যে মিলিত স্থানগুলির একটি তালিকা প্রদান করে, প্রতিটি Place
বস্তু দ্বারা প্রতিনিধিত্ব করে।
ডিফল্টরূপে, প্রতিক্রিয়া অনুসন্ধান এলাকার মধ্যে সব ধরনের স্থান ধারণ করে। আপনি ঐচ্ছিকভাবে প্রতিক্রিয়া থেকে স্পষ্টভাবে অন্তর্ভুক্ত বা বাদ দেওয়ার জন্য স্থানের প্রকারের একটি তালিকা নির্দিষ্ট করে প্রতিক্রিয়া ফিল্টার করতে পারেন। উদাহরণ স্বরূপ, আপনি "রেস্তোরাঁ", "বেকারি" এবং "ক্যাফে" টাইপের সেইসব স্থানগুলিকে প্রতিক্রিয়াতে অন্তর্ভুক্ত করার জন্য নির্দিষ্ট করতে পারেন বা "স্কুল" টাইপের সমস্ত জায়গা বাদ দিতে পারেন৷
কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ
একটি কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ করুন PlacesClient.searchNearby
কল করে, একটি SearchNearbyRequest
অবজেক্ট পাস করে যা অনুরোধের পরামিতিগুলিকে সংজ্ঞায়িত করে৷
SearchNearbyRequest
অবজেক্ট অনুরোধের জন্য প্রয়োজনীয় এবং ঐচ্ছিক পরামিতিগুলি নির্দিষ্ট করে। প্রয়োজনীয় পরামিতি অন্তর্ভুক্ত:
-
Place
অবজেক্টে ফিল্ডের তালিকা যা ফিল্ড মাস্ক নামেও পরিচিত। আপনি যদি ক্ষেত্র তালিকায় অন্তত একটি ক্ষেত্র নির্দিষ্ট না করেন, অথবা যদি আপনি ক্ষেত্র তালিকা বাদ দেন, তাহলে কলটি একটি ত্রুটি প্রদান করে৷ - অনুসন্ধান এলাকার জন্য অবস্থানের সীমাবদ্ধতা, মিটারে একটি অক্ষাংশ/দ্রাঘিমাংশ যুগল এবং ব্যাসার্ধ মান হিসাবে সংজ্ঞায়িত।
কাছাকাছি অনুসন্ধান অনুরোধের এই উদাহরণটি সুনির্দিষ্ট করে যে প্রতিক্রিয়া Place
বস্তুতে স্থান ক্ষেত্রগুলি রয়েছে Place.Field.ID
এবং Place.Field.DISPLAY_NAME
অনুসন্ধান ফলাফলে প্রতিটি Place
বস্তুর জন্য৷ এটি শুধুমাত্র "রেস্তোরাঁ" এবং "ক্যাফে" টাইপের রিটার্ন স্থানগুলির প্রতিক্রিয়া ফিল্টার করে, কিন্তু "পিৎজা_রেস্তোরাঁ" এবং "আমেরিকান_রেস্টুরেন্ট" টাইপের স্থানগুলি বাদ দেয়।
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME); // Define the search area as a 1000 meter diameter circle in New York, NY. LatLng center = new LatLng(40.7580, -73.9855); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 1000); // Define a list of types to include. final List<String> includedTypes = Arrays.asList("restaurant", "cafe"); // Define a list of types to exclude. final List<String> excludedTypes = Arrays.asList("pizza_restaurant", "american_restaurant"); // Use the builder to create a SearchNearbyRequest object. final SearchNearbyRequest searchNearbyRequest = SearchNearbyRequest.builder(/* location restriction = */ circle, placeFields) .setIncludedTypes(includedTypes) .setExcludedTypes(excludedTypes) .setMaxResultCount(10) .build()); // Call placesClient.searchNearby() to perform the search. // Define a response handler to process the returned List of Place objects. placesClient.searchNearby(searchNearbyRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); });
কাছাকাছি অনুসন্ধান (নতুন) প্রতিক্রিয়া
SearchNearbyResponse
ক্লাস একটি অনুসন্ধান অনুরোধ থেকে প্রতিক্রিয়া প্রতিনিধিত্ব করে। একটি SearchNearbyResponse
বস্তুর মধ্যে রয়েছে:
-
Place
অবজেক্টের একটি তালিকা যা সমস্ত মিলে যাওয়া জায়গাগুলিকে প্রতিনিধিত্ব করে, প্রতি মিলিত জায়গায় একটিPlace
অবজেক্ট সহ। - প্রতিটি
Place
অবজেক্ট শুধুমাত্র অনুরোধে পাস করা ক্ষেত্র তালিকা দ্বারা সংজ্ঞায়িত ক্ষেত্র ধারণ করে।
উদাহরণস্বরূপ, অনুরোধে আপনি একটি ক্ষেত্র তালিকাকে সংজ্ঞায়িত করেছেন:
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
এই ক্ষেত্র তালিকার অর্থ হল প্রতিক্রিয়ার প্রতিটি Place
বস্তুতে শুধুমাত্র স্থান আইডি এবং প্রতিটি মিলিত স্থানের নাম রয়েছে। আপনি তারপর Place.getId()
এবং Place.getName()
পদ্ধতি ব্যবহার করে প্রতিটি Place
বস্তুতে এই ক্ষেত্রগুলি অ্যাক্সেস করতে পারেন৷
একটি Place
অবজেক্টে ডেটা অ্যাক্সেস করার আরও উদাহরণের জন্য, অ্যাক্সেস প্লেস অবজেক্ট ডেটা ক্ষেত্রগুলি দেখুন।
প্রয়োজনীয় পরামিতি
অনুসন্ধানের জন্য প্রয়োজনীয় পরামিতিগুলি নির্দিষ্ট করতে SearchNearbyRequest
অবজেক্টটি ব্যবহার করুন।
ক্ষেত্র তালিকা
যখন আপনি স্থানের বিশদ বিবরণের জন্য অনুরোধ করেন, তখন আপনাকে অবশ্যই একটি ফিল্ড মাস্ক হিসাবে জায়গাটির জন্য
Place
অবজেক্টে ফিরে আসার জন্য ডেটা নির্দিষ্ট করতে হবে। ফিল্ড মাস্ক সংজ্ঞায়িত করতে,Place.Field
থেকেSearchNearbyRequest
অবজেক্টে মানগুলির একটি অ্যারে পাস করুন। আপনি অপ্রয়োজনীয় ডেটার অনুরোধ করবেন না তা নিশ্চিত করার জন্য ফিল্ড মাস্কিং একটি ভাল ডিজাইন অনুশীলন, যা অপ্রয়োজনীয় প্রক্রিয়াকরণের সময় এবং বিলিং চার্জ এড়াতে সহায়তা করে।নিম্নলিখিত ক্ষেত্রগুলির মধ্যে এক বা একাধিক নির্দিষ্ট করুন:
নিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান (বেসিক) SKU ট্রিগার করে:
Place.Field.ADDRESS_COMPONENTS
ADDRESS_COMPONENTS ,Place.Field.BUSINESS_STATUS
BUSINESS_STATUS ,Place.Field.ADDRESS
।ADDRESS ,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.LAT_LNG
Place.Field.PHOTO_METADATAS
Place.Field.PLUS_CODE
,Place.Field.PRIMARY_TYPE
PRIMARY_TYPE ,Place.Field.PRIMARY_TYPE_DISPLAY_NAME
PRIMARY_TYPE_DISPLAY_NAME ,Place.Field.ID
,Place.Field.NAME
,Place.Field.TYPES
,Place.Field.UTC_OFFSET
UTC_OFFSET,Place.Field.VIEWPORT
Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
নিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান (উন্নত) SKU ট্রিগার করে:
Place.Field.CURRENT_OPENING_HOURS
CURRENT_OPENING_HOURS ,Place.Field.CURRENT_SECONDARY_OPENING_HOURS
Place.Field.INTERNATIONAL_PHONE_NUMBER
INTERNATIONAL_PHONE_NUMBER ,Place.Field.NATIONAL_PHONE_NUMBER
Place.Field.OPENING_HOURS
,Place.Field.PRICE_LEVEL
VLEPRIPlace.Field.RATING
,Place.Field.SECONDARY_OPENING_HOURS
SECONDARY_OPENING_HOURS ,Place.Field.USER_RATING_COUNT
USER_RATING_COUNTPlace.Field.WEBSITE_URI
নিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান (পছন্দের) SKU ট্রিগার করে:
Place.Field.ALLOWS_DOGS
ALLOWS_DOGS ,Place.Field.CURBSIDE_PICKUP
CURBSIDE_PICKUP ,Place.Field.DELIVERY
DELIVERY ,Place.Field.DINE_IN
,Place.Field.EDITORIAL_SUMMARY
EDITORIAL_SUMMARY ,Place.Field.EV_CHARGE_OPTIONS
EV_CHARGE_OPTIONS ,Place.Field.FUEL_OPTIONS
।Place.Field.GOOD_FOR_CHILDREN
GOOD_FOR_CHILDREN ,Place.Field.GOOD_FOR_GROUPS
GOOD_FOR_GROUPS ,Place.Field.GOOD_FOR_WATCHING_SPORTS
GOOD_FOR_WATCHING_SPORTS ,Place.Field.LIVE_MUSIC
,Place.Field.MENU_FOR_CHILDREN
MENU_FOR_CHILDREN ,Place.Field.OUTDOOR_SEATING
DOOUT_SEFELD।Place.Field.PARKING_OPTIONS
PARKING_OPTIONS ,Place.Field.PAYMENT_OPTIONS
PAYMENT_OPTIONS ,Place.Field.RESERVABLE
,Place.Field.RESTROOM
।RESTROOM ,Place.Field.REVIEWS
REVIEWS ,Place.Field.SERVES_BEER
।SERVES_BEER ,Place.Field.SERVES_BREAKFAST
।Place.Field.SERVES_BRUNCH
SERVES_BRUNCH ,Place.Field.SERVES_COCKTAILS
SERVES_COCKTAILS ,Place.Field.SERVES_COFFEE
,Place.Field.SERVES_DESSERT
,Place.Field.SERVES_DINNER
।SERVES_DINNER ,Place.Field.SERVES_LUNCH
।Place.Field.SERVES_VEGETARIAN_FOOD
SERVES_VEGETARIAN_FOOD ,Place.Field.SERVES_WINE
,Place.Field.TAKEOUT
TAKEOUT
ফিল্ড লিস্ট প্যারামিটার সেট করতে,
SearchNearbyRequest
অবজেক্ট তৈরি করার সময়setPlaceFields()
পদ্ধতিতে কল করুন।নিম্নলিখিত উদাহরণটি নির্দিষ্ট করতে দুটি ক্ষেত্রের মানের একটি তালিকা সংজ্ঞায়িত করে যে একটি অনুরোধ দ্বারা প্রত্যাবর্তিত
Place
বস্তুটিতেPlace.Field.ID
এবংPlace.Field.DISPLAY_NAME
ক্ষেত্র রয়েছে:
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME);
অবস্থান সীমাবদ্ধতা
একটি
LocationRestriction
অবজেক্ট যা একটি বৃত্ত হিসাবে নির্দিষ্ট অনুসন্ধানের জন্য অঞ্চলটিকে সংজ্ঞায়িত করে, কেন্দ্র বিন্দু এবং মিটারে ব্যাসার্ধ দ্বারা সংজ্ঞায়িত। ব্যাসার্ধটি অবশ্যই 0.0-এর বেশি এবং 50000.0-এর থেকে কম বা সমান হতে হবে, মনে রাখবেন যে খুব ছোট ব্যাসার্ধ নির্দিষ্ট করলে প্রতিক্রিয়া হিসাবেZERO_RESULTS
ফিরে আসবে৷অবস্থান সীমাবদ্ধতা প্যারামিটার সেট করতে,
SearchNearbyRequest
অবজেক্ট তৈরি করার সময়setLocationRestriction()
পদ্ধতিতে কল করুন।
ঐচ্ছিক পরামিতি
অনুসন্ধানের জন্য ঐচ্ছিক পরামিতি নির্দিষ্ট করতে SearchNearbyRequest
অবজেক্ট ব্যবহার করুন।
প্রকার এবং প্রাথমিক প্রকার
সার্চ ফলাফল ফিল্টার করতে ব্যবহৃত সারণী A থেকে প্রকারের একটি তালিকা আপনাকে নির্দিষ্ট করতে দেয়। প্রতিটি ধরনের সীমাবদ্ধতা বিভাগে 50টি পর্যন্ত নির্দিষ্ট করা যেতে পারে।
একটি স্থানের সাথে যুক্ত সারণী A থেকে শুধুমাত্র একটি একক প্রাথমিক প্রকার থাকতে পারে। উদাহরণস্বরূপ, প্রাথমিক প্রকার হতে পারে
"mexican_restaurant"
বা"steak_house"
। একটি স্থানের প্রাথমিক প্রকারের ফলাফলগুলি ফিল্টার করতেincludedPrimaryTypes
এবংexcludedPrimaryTypes
ব্যবহার করুন৷একটি স্থানের সাথে যুক্ত সারণী A থেকে একাধিক ধরণের মান থাকতে পারে। উদাহরণস্বরূপ একটি রেস্তোরাঁর নিম্নলিখিত প্রকারগুলি থাকতে পারে:
"seafood_restaurant"
,"restaurant"
,"food"
,"point_of_interest"
,"establishment"
। একটি স্থানের সাথে সম্পর্কিত প্রকারের তালিকায় ফলাফলগুলি ফিল্টার করতেincludedTypes
এবংexcludedTypes
ব্যবহার করুন৷আপনি যখন একটি সাধারণ প্রাথমিক প্রকার নির্দিষ্ট করেন, যেমন
"restaurant"
বা"hotel"
, তখন প্রতিক্রিয়াতে নির্দিষ্ট করা থেকে আরও নির্দিষ্ট প্রাথমিক প্রকারের স্থান থাকতে পারে৷ উদাহরণস্বরূপ, আপনি একটি প্রাথমিক ধরনের"restaurant"
অন্তর্ভুক্ত করার জন্য নির্দিষ্ট করেছেন৷ প্রতিক্রিয়াতে তখন প্রাথমিক ধরণের"restaurant"
সহ স্থান থাকতে পারে, কিন্তু প্রতিক্রিয়াতে আরও নির্দিষ্ট প্রাথমিক প্রকারের স্থানগুলিও থাকতে পারে, যেমন"chinese_restaurant"
বা"seafood_restaurant"
।যদি একটি অনুসন্ধান একাধিক প্রকারের বিধিনিষেধের সাথে নির্দিষ্ট করা হয়, শুধুমাত্র সেই স্থানগুলি যা সমস্ত বিধিনিষেধ পূরণ করে ফেরত দেওয়া হয়৷ উদাহরণস্বরূপ, যদি আপনি
includedTypes = Arrays.asList("restaurant")
এবংexcludedPrimaryTypes = Arrays.asList("steak_house")
উল্লেখ করেন, তাহলে প্রত্যাবর্তিত স্থানগুলি"restaurant"
সম্পর্কিত পরিষেবা প্রদান করে কিন্তু প্রাথমিকভাবে একটি"steak_house"
হিসাবে কাজ করে না।includedTypes
এবংexcludedTypes
কীভাবে ব্যবহার করবেন তার একটি উদাহরণের জন্য, কাছাকাছি অনুসন্ধান (নতুন) অনুরোধগুলি দেখুন।অন্তর্ভুক্ত ধরনের
অনুসন্ধান করার জন্য টেবিল A থেকে স্থানের প্রকারের একটি তালিকা৷ যদি এই প্যারামিটারটি বাদ দেওয়া হয়, তাহলে সব ধরনের স্থান ফেরত দেওয়া হয়।
অন্তর্ভুক্ত প্রকারের প্যারামিটার সেট করতে,
SearchNearbyRequest
অবজেক্ট তৈরি করার সময়setIncludedTypes()
পদ্ধতিতে কল করুন।বর্জিত প্রকার
একটি অনুসন্ধান থেকে বাদ দিতে টেবিল A থেকে স্থানের প্রকারের একটি তালিকা৷
আপনি যদি অনুরোধে
includedTypes
(যেমন"school"
) এবংexcludedTypes
(যেমন"primary_school"
) উভয়ই উল্লেখ করেন, তাহলে প্রতিক্রিয়াতে এমন জায়গাগুলি অন্তর্ভুক্ত থাকে যেগুলিকে"school"
হিসাবে শ্রেণীবদ্ধ করা হয়েছে কিন্তু"primary_school"
হিসাবে নয়। প্রতিক্রিয়ার মধ্যে এমন স্থানগুলি অন্তর্ভুক্ত রয়েছে যেগুলিincludedTypes
মধ্যে অন্তত একটির সাথে মেলে এবংexcludedTypes
একটির সাথেও মেলে না ৷যদি কোনো পরস্পরবিরোধী প্রকার থাকে, যেমন একটি প্রকার
includedTypes
এবংexcludedTypes
উভয় ক্ষেত্রে প্রদর্শিত হয়, একটিINVALID_REQUEST
ত্রুটি ফেরত দেওয়া হয়৷বাদ দেওয়া প্রকারের প্যারামিটার সেট করতে,
SearchNearbyRequest
অবজেক্ট তৈরি করার সময়setExcludedTypes()
পদ্ধতিতে কল করুন।প্রাথমিক প্রকার অন্তর্ভুক্ত
একটি অনুসন্ধানে অন্তর্ভুক্ত করার জন্য সারণী A থেকে প্রাথমিক স্থানের প্রকারের একটি তালিকা৷
অন্তর্ভুক্ত প্রাথমিক প্রকারের প্যারামিটার সেট করতে,
SearchNearbyRequest
অবজেক্ট তৈরি করার সময়setIncludedPrimaryTypes()
পদ্ধতিতে কল করুন।বাদ প্রাথমিক প্রকার
একটি অনুসন্ধান থেকে বাদ দেওয়ার জন্য সারণী A থেকে প্রাথমিক স্থানের প্রকারের একটি তালিকা৷
যদি কোনো বিরোধপূর্ণ প্রাথমিক প্রকার থাকে, যেমন একটি প্রকার
includedPrimaryTypes
এবংexcludedPrimaryTypes
উভয়েই প্রদর্শিত হয়, একটিINVALID_ARGUMENT
ত্রুটি ফেরত দেওয়া হয়৷বাদ দেওয়া প্রাথমিক প্রকারের প্যারামিটার সেট করতে,
SearchNearbyRequest
অবজেক্ট তৈরি করার সময়setExcludedPrimaryTypes()
পদ্ধতিতে কল করুন।সর্বাধিক ফলাফল গণনা
ফেরত দেওয়ার জন্য সর্বাধিক সংখ্যক স্থানের ফলাফল নির্দিষ্ট করে। 1 এবং 20 এর মধ্যে হতে হবে (ডিফল্ট) অন্তর্ভুক্ত।
সর্বাধিক ফলাফল গণনা প্যারামিটার সেট করতে,
SearchNearbyRequest
অবজেক্ট তৈরি করার সময়setMaxResultCount()
পদ্ধতিতে কল করুন।র্যাঙ্ক পছন্দ
ব্যবহার করার জন্য র্যাঙ্কিংয়ের ধরন। যদি এই প্যারামিটারটি বাদ দেওয়া হয়, ফলাফলগুলি জনপ্রিয়তার ভিত্তিতে র্যাঙ্ক করা হয়। নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
-
POPULARITY
(ডিফল্ট) তাদের জনপ্রিয়তার উপর ভিত্তি করে ফলাফল বাছাই করে। -
DISTANCE
বাছাই করে নির্দিষ্ট অবস্থান থেকে তাদের দূরত্ব অনুসারে ক্রমবর্ধমান ক্রম হয়।
র্যাঙ্ক প্রেফারেন্স প্যারামিটার সেট করতে,
SearchNearbyRequest
অবজেক্ট তৈরি করার সময়setRankPreference()
পদ্ধতিতে কল করুন।-
অঞ্চল কোড
উত্তর ফর্ম্যাট করতে ব্যবহৃত অঞ্চল কোড, একটি দুই-অক্ষরের CLDR কোড মান হিসাবে নির্দিষ্ট করা হয়েছে। কোন ডিফল্ট মান নেই।
যদি প্রতিক্রিয়াতে
FORMATTED_ADDRESS
ক্ষেত্রের দেশের নামregionCode
সাথে মেলে, তাহলে দেশের কোডটিFORMATTED_ADDRESS
থেকে বাদ দেওয়া হবে।কিছু উল্লেখযোগ্য ব্যতিক্রম সহ বেশিরভাগ CLDR কোডগুলি ISO 3166-1 কোডগুলির সাথে অভিন্ন৷ উদাহরণস্বরূপ, ইউনাইটেড কিংডমের ccTLD হল "uk" (.co.uk) যেখানে এর ISO 3166-1 কোড হল "gb" (প্রযুক্তিগতভাবে "The United Kingdom of Great Britain and Northern Ireland" এর সত্তার জন্য)। প্যারামিটার প্রযোজ্য আইনের উপর ভিত্তি করে ফলাফলকে প্রভাবিত করতে পারে।
অঞ্চল কোড প্যারামিটার সেট করতে,
SearchNearbyRequest
অবজেক্ট তৈরি করার সময়setRegionCode()
পদ্ধতিতে কল করুন।
আপনার অ্যাপে বৈশিষ্ট্য প্রদর্শন করুন
যখন আপনার অ্যাপ PlacesClient
থেকে প্রাপ্ত তথ্য প্রদর্শন করে, যেমন ফটো এবং রিভিউ, অ্যাপটিকে অবশ্যই প্রয়োজনীয় বৈশিষ্ট্যগুলিও প্রদর্শন করতে হবে।
আরও তথ্যের জন্য, Android এর জন্য স্থান SDK-এর নীতি দেখুন।