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

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

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

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

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

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

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

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

কাছাকাছি অনুসন্ধান অনুরোধের এই উদাহরণটি নির্দিষ্ট করে যে প্রতিক্রিয়া Place অবজেক্টে অনুসন্ধান ফলাফলে প্রতিটি Place বস্তুর জন্য স্থান ক্ষেত্র Place.Field.ID এবং Place.Field.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.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 ICON_BACKGROUND_COLOR , Place.Field.ICON_URL Place.Field.PHOTO_METADATAS Place.Field.LAT_LNG Place.Field.PLUS_CODE , 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.SECONDARY_OPENING_HOURS Place.Field.PHONE_NUMBER Place.Field.PRICE_LEVEL Place.Field.RATING Place.Field.OPENING_HOURS Place.Field.USER_RATINGS_TOTAL Place.Field.WEBSITE_URI
    • নিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান (পছন্দের) SKU ট্রিগার করে:

      Place.Field.CURBSIDE_PICKUP CURBSIDE_PICKUP , Place.Field.DELIVERY , Place.Field.DINE_IN , Place.Field.EDITORIAL_SUMMARY EDITORIAL_SUMMARY , Place.Field.RESERVABLE RESERVABLE , Place.Field.REVIEWS REVIEWS , Place.Field.SERVES_BEERPlace.Field.SERVES_BREAKFAST , Place.Field.SERVES_BRUNCH 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.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.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 ব্যবহার করুন৷

    যদি একটি অনুসন্ধান একাধিক প্রকারের বিধিনিষেধের সাথে নির্দিষ্ট করা হয়, শুধুমাত্র সেই স্থানগুলি যা সমস্ত বিধিনিষেধ পূরণ করে ফেরত দেওয়া হয়৷ উদাহরণস্বরূপ, যদি আপনি 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 কোড মান হিসাবে নির্দিষ্ট করা হয়েছে। এর কোন পূর্ব মূল্য নেই।

    উত্তরে formattedAddress ক্ষেত্রের দেশের নাম যদি regionCode সাথে মেলে, তাহলে দেশের কোডটি formattedAddress থেকে বাদ দেওয়া হয়।

    কিছু উল্লেখযোগ্য ব্যতিক্রম সহ বেশিরভাগ 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-এর নীতি দেখুন।