কাছাকাছি অনুসন্ধান (নতুন)

প্ল্যাটফর্ম নির্বাচন করুন: Android iOS জাভাস্ক্রিপ্ট ওয়েব পরিষেবা

একটি কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ বৃত্তের কেন্দ্র বিন্দুর অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক এবং মিটার ব্যাসার্ধ দ্বারা সংজ্ঞায়িত একটি বৃত্ত হিসাবে নির্দিষ্ট করা অঞ্চলটিকে ইনপুট হিসাবে নেয়৷ অনুরোধটি নির্দিষ্ট অনুসন্ধান এলাকার মধ্যে মিলিত স্থানগুলির একটি তালিকা প্রদান করে, প্রতিটি 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.ICON_BACKGROUND_COLOR
      Place.Field.ICON_URL
      Place.Field.LAT_LNG
      Place.Field.PHOTO_METADATAS
      Place.Field.PLUS_CODE
      Place.Field.PRIMARY_TYPE
      Place.Field.PRIMARY_TYPE_DISPLAY_NAME
      Place.Field.ID
      Place.Field.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.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.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-এর নীতি দেখুন।