অনুরোধের প্যারামিটার

এই ডকুমেন্ট Places Aggregate API-এর জন্য অনুরোধের প্যারামিটার বর্ণনা করে এবং এতে এই পরিষেবা ব্যবহার করার জন্য ইনসাইট ও পেশাদার পদ্ধতি অন্তর্ভুক্ত থাকে।

Places Aggregate API আপনাকে বেশ কিছু গুরুত্বপূর্ণ ফাংশন পারফর্ম করতে দেয়:

  • জায়গার সংখ্যা: লোকেশনের ধরন, অপারেটিং স্ট্যাটাস, দামের লেভেল ও রেটিংয়ের মতো নির্দিষ্ট মাপকাঠির সাথে মেলে এমন জায়গার সংখ্যা নির্ধারণ করুন।
  • জায়গার বিবরণ ফিরিয়ে আনা: নির্দিষ্ট ফিল্টার পূরণ করে এমন জায়গার নাম পান, তারপর Places API ব্যবহার করে আরও বিস্তারিত তথ্য নিয়ে আসুন।
  • ফ্লেক্সিবল ফিল্টারিং: সঠিক এগ্রিগেট পেতে বিস্তারিত ফিল্টার প্রয়োগ করুন। উপলভ্য ফিল্টারের মধ্যে এগুলি পড়ে:
    • ভৌগোলিক অঞ্চল (বৃত্ত, অঞ্চল বা কাস্টম পলিগন)
    • জায়গার ধরন
    • অপারেটিং স্ট্যাটাস
    • দামের লেভেল
    • রেটিং রেঞ্জ

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

Places Aggregate API-তে অনুরোধ করার সময় প্রয়োজনীয় প্যারামিটারগুলি এই বিভাগে কভার করা হয়েছে। প্রতিটি অনুরোধে নিম্নলিখিত তথ্য প্রদান করতে হবে:

  • ইনসাইটের ধরন।
  • লোকেশন ফিল্টার ও ধরন ফিল্টার।

ইনসাইটের প্রকার

আপনি যে ধরনের ইনসাইট গণনা করতে চান তা নির্দিষ্ট করে। নিম্নলিখিত ইনসাইটের প্রকার কাজ করে:

  • INSIGHT_COUNT: ফিল্টার মাপকাঠির সাথে ম্যাচ করা জায়গার সংখ্যা দেখায়।
  • INSIGHT_PLACES: ফিল্টারের মানদণ্ডের সাথে ম্যাচ করা জায়গার আইডি দেখায়।

ফিল্টার

জায়গা ফিল্টার করার জন্য মাপকাঠি নির্দিষ্ট করে। কমপক্ষে, আপনাকে LocationFilter এবং TypeFilter উল্লেখ করতে হবে।

লোকেশন ফিল্টার

লোকেশন ফিল্টারে নিম্নলিখিত ধরনের মধ্যে যেকোনও একটি থাকতে পারে:

  • circle: কেন্দ্র ও ব্যাসার্ধ সহ বৃত্ত হিসেবে কোনও এলাকা নির্ধারণ করে।
  • region: কোনও এলাকাকে অঞ্চল হিসেবে সংজ্ঞায়িত করে।
  • customArea: কাস্টম পলিগন হিসেবে কোনও এলাকাকে সংজ্ঞায়িত করে।
সার্কেল করুন

আপনি যদি নিজের ভৌগোলিক এলাকা বৃত্ত হিসেবে বেছে নেন, তাহলে আপনাকে center এবং radius দিতে হবে। center হয় অক্ষাংশ ও দ্রাঘিমাংশ, অথবা বৃত্তের কেন্দ্রের প্লেস আইডি হতে পারে। এই পদ্ধতি আপনার নির্দিষ্ট করা বৃত্তাকার অঞ্চলের উপর ভিত্তি করে সুনির্দিষ্ট এবং সঠিক ফিল্টারিংয়ের সুবিধা দেয়।

  • center:
    • latLng: বৃত্তের কেন্দ্রের অক্ষাংশ ও দ্রাঘিমাংশ। অক্ষাংশ অবশ্যই -৯০, ৯০-এর মধ্যে কোনও সংখ্যা হতে হবে। দ্রাঘিমাংশ অবশ্যই -১৮০ থেকে ১৮০-এর মধ্যে কোনও সংখ্যা হতে হবে।
    • place: বৃত্তের কেন্দ্রস্থলের প্লেস আইডি। মনে রাখবেন, শুধু পয়েন্ট জায়গা কাজ করে। এই স্ট্রিংটি অবশ্যই places/ প্রিফিক্স দিয়ে শুরু হতে হবে।
  • radius: মিটারে বৃত্তের ব্যাসার্ধ। এই সংখ্যাটি অবশ্যই পজিটিভ হতে হবে।
অঞ্চল

place প্যারামিটারে একটি স্থান আইডি পাস করে আপনার এলাকাকে একটি অঞ্চল হিসাবে সংজ্ঞায়িত করুন। প্লেস আইডি একটি ভৌগোলিক এলাকাকে (যেমন, বহুভুজ দ্বারা প্রতিনিধিত্ব করা যেতে পারে এমন একটি এলাকা) প্রতিনিধিত্ব করে। যেমন, ট্যাম্পা, ফ্লোরিডার প্লেস আইডি হল places/ChIJ4dG5s4K3wogRY7SWr4kTX6c। মনে রাখবেন যে সব জায়গার আইডিতে সুনির্দিষ্ট জ্যামিতি থাকে না এবং এইসব ক্ষেত্রে Places Aggregate API একটি 400 ত্রুটি কোড সহ একটি মেসেজ দেখায় যা নির্দেশ করে যে অঞ্চলটি কাজ করে না। এছাড়াও, জটিল ভৌগোলিক অঞ্চলের ক্ষেত্রে, ইন্টার্নাল প্রসেসিং অপ্টিমাইজেশনের ফলে অঞ্চলের প্রতিনিধিত্বকারী এলাকার (২-৩% পর্যন্ত) সামান্য বেশি আনুমানিক পরিমাপ হতে পারে।

কোনও প্লেস আইডি কাজ করে না এমন জায়গার ধরনকে উপস্থাপন করে কিনা তা নির্ধারণ করতে, Geocoding API অনুরোধে প্লেস আইডি পাস করুন। উত্তরে type অ্যারে অন্তর্ভুক্ত থাকে যা প্লেস আইডির সাথে সম্পর্কিত জায়গার ধরন তালিকাভুক্ত করে, যেমন locality, neighborhood বা country। কোনও জায়গার ধরন এই তালিকার যেকোনও ধরনের সাথে মিলে গেলে, অঞ্চল ফিল্টারিংয়ের জন্য সেটি বাতিল করা হবে।

যেসব জায়গার ধরন কাজ করে না, তার মধ্যে রয়েছে:

  • establishment: সাধারণত এমন একটি জায়গা বোঝায় যা এখনও বিভাগভুক্ত করা হয়নি।
  • intersection: সাধারণত দুটি প্রধান রাস্তার সংযোগস্থলকে বোঝায়।
  • subpremise: প্রাঙ্গণ লেভেলের নিচে ঠিকানাযোগ্য এন্টিটি নির্দেশ করে, যেমন অ্যাপার্টমেন্ট, ইউনিট বা স্যুট।
কাস্টম এলাকা

অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্ক ব্যবহার করে কাস্টম বহুভুজের ক্ষেত্রফল নির্ধারণ করে।

আপনি https://geojson.io/ লিঙ্কে গিয়ে কাস্টম পলিগন এঁকে অনুরোধে সেই স্থানাঙ্ক লিখতে পারেন। পলিগনে কমপক্ষে ৪টি কোঅর্ডিনেট থাকতে হবে, যেখানে প্রথম এবং শেষ কোঅর্ডিনেট একই হবে। প্রদান করা স্থানাঙ্কের মধ্যে অন্তত ৩টি অনন্য হতে হবে।

পরপর একই ধরনের কোঅর্ডিনেটকে একটি কোঅর্ডিনেট হিসেবে বিবেচনা করা হবে। তবে, পরপর নয় এমন ডুপ্লিকেট স্থানাঙ্ক (প্রয়োজনীয় অভিন্ন প্রথম ও শেষ স্থানাঙ্ক ছাড়া) থাকলে সমস্যা হবে।

এছাড়াও, পাশাপাশি নয় এমন প্রান্তগুলি ছেদ করতে পারা যায় না এবং ১৮০ ডিগ্রি দৈর্ঘ্যের প্রান্তগুলি অনুমোদিত নয় (অর্থাৎ, পাশাপাশি শীর্ষবিন্দুগুলি অ্যান্টিপোডাল হতে পারে না)।

যেমন:

"coordinates":[
   {
      "latitude":37.776,
      "longitude":-122.666
   },
   {
      "latitude":37.130,
      "longitude":-121.898
   },
   {
      "latitude":37.326,
      "longitude":-121.598
   },
   {
      "latitude":37.912,
      "longitude":-122.247
   },
   {
      "latitude":37.776,
      "longitude":-122.666
   }
]

টাইপ ফিল্টার

অন্তর্ভুক্ত বা বাদ দেওয়ার জন্য জায়গার ধরন নির্দিষ্ট করে। Places Aggregate API-তে কাজ করে এমন প্রাথমিক ও সেকেন্ডারি জায়গার প্রকারের তালিকা দেখতে, Places API (নতুন)-এর জন্য জায়গার প্রকার-এর অধীনে সারণী A দেখুন। আপনাকে অন্তত একটি includedTypes বা includedPrimaryTypes টাইপ উল্লেখ করতে হবে।

  • includedTypes: অন্তর্ভুক্ত করা জায়গার ধরনের তালিকা।
  • excludedTypes: বাদ দেওয়া জায়গার ধরনের তালিকা।
  • includedPrimaryTypes: অন্তর্ভুক্ত প্রাইমারি জায়গার ধরনের তালিকা।
  • excludedPrimaryTypes: বাদ দেওয়া প্রাথমিক জায়গার ধরনের তালিকা।

টাইপ ফিল্টার এবং জায়গার ধরন কীভাবে কাজ করে সেই সম্পর্কে আরও জানতে, টাইপ ফিল্টার সম্পর্কে আরও জানুন।

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

এইসব ফিল্টার ঐচ্ছিক:

  • operatingStatus: অন্তর্ভুক্ত বা বাদ দেওয়ার জন্য জায়গার স্ট্যাটাস নির্দিষ্ট করে। ডিফল্ট হিসেবে operatingStatus: OPERATING_STATUS_OPERATIONAL (একটি নির্দিষ্ট ভ্যালু) অনুযায়ী ফিল্টার করা হয়।
  • priceLevels: অন্তর্ভুক্ত করার জন্য জায়গার দামের লেভেল নির্দিষ্ট করে। ডিফল্ট হিসেবে, কোনও প্রাইস লেভেল ফিল্টারিং প্রয়োগ করা হয় না এবং সব জায়গা (প্রাইস লেভেল তথ্য ছাড়া জায়গা সহ) দেখানো হয়।
  • ratingFilter: জায়গার রেটিং রেঞ্জ নির্দিষ্ট করে। ডিফল্ট হিসেবে কোনও ফিল্টারিং করা হয় না (ফলাফলে সব রেটিং অন্তর্ভুক্ত করা হয়)।

অপারেটিং স্ট্যাটাস

operatingStatus ফিল্টারের সাহায্যে, আপনি অপারেটিং স্ট্যাটাস-এর ভিত্তিতে ফিল্টার করতে পারবেন যেমন OPERATIONAL বা TEMPORARILY_CLOSED। operatingStatus ফিল্টার এইভাবে কাজ করে:

  • কোনও ফিল্টার প্রদান করা না হলে, শুধুমাত্র OPERATING_STATUS_OPERATIONAL অপারেটিং স্ট্যাটাস সহ জায়গাগুলি ফলাফলে অন্তর্ভুক্ত করা হয়।
  • এক বা একাধিক ফিল্টার প্রদান করা হলে, আপনাকে অবশ্যই সঠিক অপারেটিং স্ট্যাটাস ভ্যালু (OPERATING_STATUS_OPERATIONAL, OPERATING_STATUS_PERMANENTLY_CLOSED, অথবা OPERATING_STATUS_TEMPORARILY_CLOSED) উল্লেখ করতে হবে।

দামের লেভেল

priceLevels ফিল্টারের সাহায্যে, আপনি মূল্যের লেভেল অনুযায়ী জায়গা ফিল্টার করতে পারবেন। দামের লেভেলের সঠিক ভ্যালু হল: PRICE_LEVEL_FREE, PRICE_LEVEL_INEXPENSIVE, PRICE_LEVEL_MODERATE, PRICE_LEVEL_EXPENSIVE এবং PRICE_LEVEL_VERY_EXPENSIVE।

priceLevels ফিল্টার এইভাবে কাজ করে:

  • কোনও ফিল্টার প্রদান করা না হলে: সমস্ত স্থান ফেরত দেওয়া হয়, তাদের একটি মূল্য স্তর বরাদ্দ করা আছে কিনা তা নির্বিশেষে। এর মধ্যে দামের লেভেল সংক্রান্ত তথ্য নেই এমন জায়গা অন্তর্ভুক্ত, যা নির্দিষ্ট দামের লেভেল অনুযায়ী ফিল্টার করার সময় নাও দেখানো হতে পারে।
  • এক বা একাধিক ফিল্টার প্রদান করা হলে: শুধুমাত্র নির্দিষ্ট দামের লেভেলের সাথে ম্যাচ করা জায়গাগুলিই দেখানো হয়।

রেটিং ফিল্টার

ব্যবহারকারীদের দেওয়া গড় রেটিংয়ের ভিত্তিতে জায়গা ফিল্টার করে। এই দুটি ফিল্ডই ঐচ্ছিক এবং তাই এগুলি বাদ দিলে, ডিফল্ট হিসেবে এমন জায়গাও অন্তর্ভুক্ত করা হবে যেগুলির কোনও রেটিং নেই।

  • minRating: ব্যবহারকারীর দেওয়া ন্যূনতম গড় রেটিং (১.০ থেকে ৫.০-এর মধ্যে)।
  • maxRating: ব্যবহারকারীর দেওয়া সর্বাধিক গড় রেটিং (১.০ থেকে ৫.০-এর মধ্যে)।

এছাড়াও, minRating ভ্যালু সবসময় maxRating ভ্যালুর চেয়ে কম বা সমান হতে হবে। minRating-এর মান maxRating-এর থেকে বেশি হিসেবে নির্দিষ্ট করা হলে, INVALID_ARGUMENT সমস্যা পাওয়া গেছে।