নিয়ারবাই সার্চ (নতুন)

প্ল্যাটফর্ম বেছে নিন: Android iOS JavaScript ওয়েব পরিষেবা

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA)-এর ডেভেলপার

'আশেপাশের সার্চ' (নতুন) অনুরোধে ইনপুট হিসেবে সেই অঞ্চলকে নেওয়া হয় যেখানে বৃত্ত হিসেবে নির্দিষ্ট করা সার্চ করতে হবে, এটি বৃত্তের কেন্দ্রবিন্দুর অক্ষাংশ ও দ্রাঘিমাংশ কোঅর্ডিনেট এবং মিটারে ব্যাসার্ধ দ্বারা সংজ্ঞায়িত করা হয়। অনুরোধটি নির্দিষ্ট সার্চ এলাকার মধ্যে মিলে যাওয়া জায়গার তালিকা প্রদান করে, যার প্রতিটি Place অবজেক্ট দ্বারা প্রতিনিধিত্ব করা হয়।

ডিফল্ট হিসেবে, সার্চ করা এলাকার মধ্যে সব ধরনের জায়গা উত্তরে থাকে। আপনি চাইলে, উত্তরে স্পষ্টভাবে অন্তর্ভুক্ত করতে বা বাদ দিতে, জায়গার ধরনের একটি তালিকা নির্দিষ্ট করে উত্তর ফিল্টার করতে পারেন। যেমন, আপনি নির্দিষ্ট করে দিতে পারেন যে উত্তরে শুধুমাত্র "রেস্তোরাঁ", "বেকারি" এবং "ক্যাফে" ধরনের জায়গা অন্তর্ভুক্ত করা হবে অথবা "স্কুল" ধরনের সব জায়গা বাদ দেওয়া হবে।

নিয়ারবাই সার্চ (নতুন) সংক্রান্ত অনুরোধ

PlacesClient.searchNearby-কে কল করে Nearby Search (নতুন) অনুরোধ করুন, অনুরোধের প্যারামিটারকে সংজ্ঞায়িত করে এমন SearchNearbyRequest অবজেক্ট পাস করুন।

SearchNearbyRequest অবজেক্ট অনুরোধের জন্য প্রয়োজনীয় ও ঐচ্ছিক সব প্যারামিটার নির্দিষ্ট করে। প্রয়োজনীয় প্যারামিটারের মধ্যে এগুলি অন্তর্ভুক্ত:

  • Place অবজেক্টে রিটার্ন করার জন্য ফিল্ডের তালিকা, যা ফিল্ড মাস্ক নামেও পরিচিত। আপনি যদি ফিল্ডের তালিকায় অন্তত একটি ফিল্ড নির্দিষ্ট না করেন, অথবা যদি আপনি ফিল্ডের তালিকা বাদ দেন, তাহলে কলটি একটি ত্রুটি দেখায়।
  • সার্চ এরিয়ার লোকেশন সংক্রান্ত বিধিনিষেধ, যা অক্ষাংশ/দ্রাঘিমাংশ জোড়া ও ব্যাসার্ধের ভ্যালু হিসেবে মিটারে সংজ্ঞায়িত করা হয়।

এই উদাহরণে, কাছাকাছি সার্চ করার অনুরোধে উল্লেখ করা হয়েছে যে সার্চ ফলাফলে প্রতিটি Place অবজেক্টের জন্য রেসপন্স 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);

// 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();
    });

নিয়ারবাই Search (নতুন) উত্তর

The 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 অবজেক্টে এইসব ফিল্ড অ্যাক্সেস করতে আপনি Place.getId() এবং Place.getName() পদ্ধতি ব্যবহার করতে পারবেন।

Place অবজেক্টে ডেটা অ্যাক্সেস করার আরও উদাহরণ পেতে, প্লেস অবজেক্ট ডেটা ফিল্ড অ্যাক্সেস করুন দেখুন।

প্রয়োজনীয় প্যারামিটার

সার্চের জন্য প্রয়োজনীয় প্যারামিটার নির্দিষ্ট করতে SearchNearbyRequest অবজেক্ট ব্যবহার করুন।

  • ফিল্ডের তালিকা

    আপনি কোনও জায়গার বিবরণ অনুরোধ করলে, আপনাকে অবশ্যই ফিল্ড মাস্ক হিসেবে জায়গার জন্য Place অবজেক্টে রিটার্ন করার ডেটা নির্দিষ্ট করতে হবে। ফিল্ড মাস্ক নির্ধারণ করতে, Place.Field থেকে SearchNearbyRequest অবজেক্টে ভ্যালুর একটি অ্যারে পাস করুন। ফিল্ড মাস্কিং হল একটি ভালো ডিজাইন প্র্যাক্টিস যা নিশ্চিত করে যে আপনি অপ্রয়োজনীয় ডেটার জন্য অনুরোধ করছেন না, যা অপ্রয়োজনীয় প্রসেসিং সময় এবং বিলিং চার্জ এড়াতে সাহায্য করে।

    নিচে উল্লেখ করা ফিল্ডের মধ্যে এক বা একাধিক ফিল্ড নির্দিষ্ট করুন:

    • নিম্নলিখিত ফিল্ডগুলি Nearby Search Pro 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_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-এর জন্য, জায়গার ডেটা ফিল্ড (নতুন) দেখুন।

    • নিম্নলিখিত ফিল্ডগুলি Nearby Search Enterprise 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-এর জন্য, জায়গার ডেটা ফিল্ড (নতুন) দেখুন।

    • নিম্নলিখিত ফিল্ডগুলি Nearby Search Enterprise Plus 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

      ফিল্ডের সম্পূর্ণ তালিকা এবং তাদের সাথে সম্পর্কিত SKU-এর জন্য, জায়গার ডেটা ফিল্ড (নতুন) দেখুন।

    ফিল্ড লিস্ট প্যারামিটার সেট করতে, 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);
  • লোকেশন সংক্রান্ত বিধিনিষেধ

    A LocationRestriction এমন অবজেক্ট যা নির্দিষ্ট সার্চ করার জন্য অঞ্চলকে সংজ্ঞায়িত করে, এটি একটি বৃত্ত হিসেবে সংজ্ঞায়িত করা হয়। এটি কেন্দ্রীয় বিন্দু ও মিটারে ব্যাসার্ধের মাধ্যমে সংজ্ঞায়িত করা হয়। ব্যাসার্ধ অবশ্যই 0.0-এর বেশি এবং 50000.0-এর কম বা সমান হতে হবে, মনে রাখবেন যে খুব ছোট ব্যাসার্ধ নির্দিষ্ট করলে উত্তরে ZERO_RESULTS দেখাবে।

    লোকেশন সংক্রান্ত বিধিনিষেধের প্যারামিটার সেট করতে, SearchNearbyRequest অবজেক্ট তৈরি করার সময় setLocationRestriction() মেথড কল করুন।

ঐচ্ছিক প্যারামিটার

সার্চের জন্য ঐচ্ছিক প্যারামিটার নির্দিষ্ট করতে SearchNearbyRequest অবজেক্ট ব্যবহার করুন।

  • প্রকার ও প্রাথমিক প্রকার

    আপনাকে types Table A থেকে ধরনের একটি তালিকা নির্দিষ্ট করতে দেয় যা সার্চ ফলাফল ফিল্টার করতে ব্যবহার করা হয়। প্রতিটি ধরনের বিধিনিষেধের বিভাগে সর্বাধিক ৫০টি ধরন উল্লেখ করা যেতে পারে।

    কোনও জায়গার সাথে যুক্ত টেবিল ক থেকে কোনও জায়গার শুধুমাত্র একটি প্রাথমিক ধরন থাকতে পারে। যেমন, প্রাথমিক ধরনটি হতে পারে "mexican_restaurant" বা "steak_house". কোনও জায়গার প্রাথমিক ধরন অনুযায়ী ফলাফল ফিল্টার করতে includedPrimaryTypes এবং excludedPrimaryTypes ব্যবহার করুন।

    এছাড়াও, কোনও জায়গার সাথে যুক্ত সারণী ক-এর ধরন থেকে একাধিক ধরনের ভ্যালু থাকতে পারে। যেমন, কোনও রেস্তোরাঁর নিম্নলিখিত ধরন থাকতে পারে: "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 কীভাবে ব্যবহার করতে হয় তার উদাহরণ দেখতে, আশেপাশের সার্চ (নতুন) সংক্রান্ত অনুরোধ দেখুন।

    অন্তর্ভুক্ত প্রকার

    খুঁজে দেখার জন্য টেবিল ক থেকে জায়গার ধরনের তালিকা। এই প্যারামিটার বাদ দেওয়া হলে, সব ধরনের জায়গা দেখানো হয়।

    অন্তর্ভুক্ত প্রকারের প্যারামিটার সেট করতে, SearchNearbyRequest অবজেক্ট তৈরি করার সময় setIncludedTypes() পদ্ধতি কল করুন।

    বাদ দেওয়া ধরন

    সার্চ থেকে বাদ দেওয়ার জন্য সারণী ক থেকে জায়গার ধরনের একটি তালিকা।

    আপনি যদি অনুরোধে includedTypes (যেমন "school") এবং excludedTypes (যেমন "primary_school") দুটিই উল্লেখ করেন, তাহলে উত্তরে এমন জায়গা অন্তর্ভুক্ত থাকে যেগুলি "school" হিসেবে শ্রেণীবদ্ধ করা হয়েছে কিন্তু "primary_school" হিসেবে নয়। উত্তরে এমন জায়গা অন্তর্ভুক্ত করা হয়েছে যা includedTypes-এর অন্তত একটি এবং excludedTypes-এর কোনওটির সাথে মেলে না।

    যদি কোনও পরস্পরবিরোধী ধরন থাকে, যেমন includedTypes এবং excludedTypes, দুটিতেই কোনও ধরন দেখা গেলে, একটি INVALID_REQUEST সমস্যা রিটার্ন করা হয়।

    বাদ দেওয়া প্রকারের প্যারামিটার সেট করতে, SearchNearbyRequest অবজেক্ট তৈরি করার সময় setExcludedTypes() পদ্ধতি কল করুন।

    অন্তর্ভুক্ত প্রাথমিক ধরন

    সার্চে অন্তর্ভুক্ত করার জন্য টেবিল ক থেকে প্রাথমিক জায়গার ধরনের তালিকা।

    অন্তর্ভুক্ত প্রাথমিক ধরনের প্যারামিটার সেট করতে, SearchNearbyRequest অবজেক্ট তৈরি করার সময় setIncludedPrimaryTypes() পদ্ধতি কল করুন।

    বাদ দেওয়া প্রাথমিক ধরন

    সার্চ থেকে বাদ দেওয়ার জন্য টেবিল ক থেকে প্রাথমিক জায়গার ধরনের তালিকা।

    যদি কোনও বিরোধপূর্ণ প্রাথমিক ধরন থাকে, যেমন একটি ধরন যা includedPrimaryTypes এবং excludedPrimaryTypes, দুটিতেই দেখা যায়, তাহলে একটি INVALID_ARGUMENT সমস্যা পাওয়া গেছে।

    বাদ দেওয়া প্রাথমিক ধরনের প্যারামিটার সেট করতে, SearchNearbyRequest অবজেক্ট তৈরি করার সময় setExcludedPrimaryTypes() মেথড কল করুন।

  • সর্বাধিক ফলাফল সংখ্যা

    ফেরত দেওয়ার জন্য জায়গার ফলাফলের সর্বাধিক সংখ্যা নির্দিষ্ট করে। ১ থেকে ২০ (ডিফল্ট) এর মধ্যে হতে হবে।

    ফলাফলের সর্বাধিক সংখ্যা প্যারামিটার সেট করতে, SearchNearbyRequest অবজেক্ট তৈরি করার সময় setMaxResultCount() মেথড কল করুন।

  • র‍্যাঙ্ক সংক্রান্ত পছন্দ

    যে ধরনের র‍্যাংকিং ব্যবহার করতে হবে। এই প্যারামিটার বাদ দেওয়া হলে, ফলাফলগুলি জনপ্রিয়তা অনুসারে র‍্যাঙ্ক করা হয়। নিম্নলিখিতগুলির মধ্যে যেকোনও একটি হতে পারে:

    • POPULARITY (ডিফল্ট) জনপ্রিয়তার ভিত্তিতে ফলাফল সাজায়।
    • DISTANCE নির্দিষ্ট লোকেশন থেকে দূরত্বের ভিত্তিতে ফলাফল ছোট থেকে বড় ক্রমে সাজায়।

    র‍্যাঙ্ক প্রেফারেন্স প্যারামিটার সেট করতে, SearchNearbyRequest অবজেক্ট তৈরি করার সময় setRankPreference() মেথড কল করুন।

  • অঞ্চলের কোড

    উত্তর ফর্ম্যাট করার জন্য ব্যবহৃত অঞ্চল কোড, যা দুটি অক্ষরের CLDR কোড ভ্যালু হিসেবে নির্দিষ্ট করা আছে। কোনও ডিফল্ট ভ্যালু নেই।

    উত্তরে FORMATTED_ADDRESS ফিল্ডের দেশের নাম regionCode-এর সাথে মিলে গেলে, FORMATTED_ADDRESS থেকে দেশের কোড বাদ দেওয়া হয়।

    বেশিরভাগ CLDR কোড ISO 3166-1 কোডের মতো একই, তবে কিছু উল্লেখযোগ্য ব্যতিক্রম আছে। যেমন, যুক্তরাজ্যের ccTLD হল "uk" (.co.uk) এবং এর ISO 3166-1 কোড হল "gb" (প্রযুক্তিগতভাবে এটি "গ্রেট ব্রিটেন ও উত্তর আয়ারল্যান্ডের যুক্তরাজ্য" এন্টিটির জন্য)। প্রযোজ্য আইনের উপর ভিত্তি করে প্যারামিটার ফলাফলে প্রভাব ফেলতে পারে।

    রিজিয়ন কোড প্যারামিটার সেট করতে, SearchNearbyRequest অবজেক্ট তৈরি করার সময় setRegionCode() মেথড কল করুন।

আপনার অ্যাপে অ্যাট্রিবিউশন দেখানো

আপনার অ্যাপ যখন PlacesClient-এর থেকে পাওয়া তথ্য দেখায়, যেমন ফটো ও রিভিউ, তখন অ্যাপটিকে প্রয়োজনীয় অ্যাট্রিবিউশনও দেখাতে হবে।

আরও তথ্যের জন্য, Android-এর জন্য Places SDK-এর নীতি দেখুন।