একটি কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ বৃত্তের কেন্দ্র বিন্দুর অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক এবং মিটার ব্যাসার্ধ দ্বারা সংজ্ঞায়িত একটি বৃত্ত হিসাবে নির্দিষ্ট করা অঞ্চলটিকে ইনপুট হিসাবে নেয়৷ অনুরোধটি নির্দিষ্ট অনুসন্ধান এলাকার মধ্যে মিলিত স্থানগুলির একটি তালিকা প্রদান করে, প্রতিটি 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
Place.Field.BUSINESS_STATUS
Place.Field.ADDRESS
Place.Field.DISPLAY_NAME>*
*Place.Field.NAMEএর পরিবর্তে ব্যবহার করুন, যা অবমূল্যায়িত।
Place.Field.ICON_BACKGROUND_COLOR
Place.Field.ICON_MASK_URLICON_MASK_URL *
*Place.Field.ICON_URLএর পরিবর্তে ব্যবহার করুন, যা অবমূল্যায়িত।
Place.Field.ID
Place.Field.LAT_LNG
Place.Field.PHOTO_METADATAS
Place.Field.PLUS_CODE
Place.Field.PRIMARY_TYPE
Place.Field.PRIMARY_TYPE_DISPLAY_NAME
Place.Field.RESOURCE_NAME
Place.Field.TYPES
Place.Field.UTC_OFFSET
Place.Field.VIEWPORT
Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCEনিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান এন্টারপ্রাইজ SKU ট্রিগার করে:
Place.Field.CURRENT_OPENING_HOURS
Place.Field.CURRENT_SECONDARY_OPENING_HOURS
Place.Field.INTERNATIONAL_PHONE_NUMBER*
*Place.Field.PHONE_NUMBERএর পরিবর্তে ব্যবহার করুন, যা অবমূল্যায়িত।
Place.Field.NATIONAL_PHONE_NUMBER
Place.Field.OPENING_HOURS
Place.Field.PRICE_LEVEL
Place.Field.RATING
Place.Field.SECONDARY_OPENING_HOURS
Place.Field.USER_RATING_COUNT*
*Place.Field.USER_RATINGS_TOTALএর পরিবর্তে ব্যবহার করুন, যা অবমূল্যায়িত।
Place.Field.WEBSITE_URIনিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান এন্টারপ্রাইজ প্লাস SKU ট্রিগার করে:
Place.Field.ALLOWS_DOGS
Place.Field.CURBSIDE_PICKUP
Place.Field.DELIVERY
Place.Field.DINE_IN
Place.Field.EDITORIAL_SUMMARY
Place.Field.EV_CHARGE_OPTIONS
Place.Field.FUEL_OPTIONS
Place.Field.GOOD_FOR_CHILDREN
Place.Field.GOOD_FOR_GROUPS
Place.Field.GOOD_FOR_WATCHING_SPORTS
Place.Field.LIVE_MUSIC
Place.Field.MENU_FOR_CHILDREN
Place.Field.OUTDOOR_SEATING
Place.Field.PARKING_OPTIONS
Place.Field.PAYMENT_OPTIONS
Place.Field.RESERVABLE
Place.Field.RESTROOM
Place.Field.REVIEWS
Place.Field.SERVES_BEER
Place.Field.SERVES_BREAKFAST
Place.Field.SERVES_BRUNCH
Place.Field.SERVES_COCKTAILS
Place.Field.SERVES_COFFEE
Place.Field.SERVES_DESSERT
Place.Field.SERVES_DINNER
Place.Field.SERVES_LUNCH
Place.Field.SERVES_VEGETARIAN_FOOD
Place.Field.SERVES_WINE
Place.Field.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-এর নীতি দেখুন।