জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি)

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

'জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি)' হল একটি ওয়েব পরিষেবা যা HTTP অনুরোধের উত্তরে জায়গার পূর্বাভাস প্রদান করে। অনুরোধে টেক্সট সার্চ স্ট্রিং এবং ঐচ্ছিক ভৌগোলিক সীমানা নির্দিষ্ট করা থাকে। এই পরিষেবা ব্যবহার করে টেক্সট-ভিত্তিক ভৌগোলিক সার্চের জন্য অটোমেটিক সম্পূর্ণ করার কার্যকারিতা প্রদান করা যায়। ব্যবহারকারী টাইপ করার সাথে সাথে ব্যবসা, ঠিকানা এবং আগ্রহের জায়গার মতো স্থান দেখানো হয়।

জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) সংক্রান্ত অনুরোধ

'জায়গা অটোমেটিক সম্পূর্ণ করা (পুরনো ভার্সন)' হল Places API-এর অংশ এবং এটি Places API-এর সাথে API key ও কোটা শেয়ার করে।

জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) সম্পূর্ণ শব্দ এবং সাবস্ট্রিংয়ের সাথে মিলতে পারে, জায়গার নাম, ঠিকানা এবং Plus Code সমাধান করে। তাই, ব্যবহারকারী টাইপ করার সাথে সাথে অ্যাপ্লিকেশন কোয়েরি পাঠাতে পারে, যাতে রিয়েল-টাইমে জায়গার পূর্বাভাস দেওয়া যায়।

আপনাকে সঠিকভাবে Plus Code ফর্ম্যাট করতে হবে। এর অর্থ হল, আপনাকে URL-এ প্লাস চিহ্নের পরিবর্তে %2B এবং স্পেসের পরিবর্তে %20 ব্যবহার করতে হবে।

  • গ্লোবাল কোড হল চার অক্ষরের এলাকার কোড এবং ছয় অক্ষর বা তার বেশি দৈর্ঘ্যের স্থানীয় কোড। যেমন, URL-এস্কেপ গ্লোবাল কোড 849VCWC8+R9 হল 849VCWC8%2BR9।
  • কম্পাউন্ড কোড হল ছয় অক্ষরের (বা তার বেশি) স্থানীয় কোড যার সাথে নির্দিষ্ট লোকেশন থাকে। যেমন, URL-এস্কেপ করা কম্পাউন্ড কোড CWC8+R9 Mountain View, CA, USA হল CWC8%2BR9%20Mountain%20View%20CA%20USA।

ব্যবহারকারীকে তার পছন্দের জায়গা বেছে নিতে সাহায্য করার জন্য ফেরত পাঠানো পূর্বাভাস ডিজাইন করা হয়েছে। আপনি জায়গার বিবরণ (Legacy) অনুরোধ পাঠিয়ে, ফিরে আসা যেকোনও জায়গা সম্পর্কে আরও তথ্য পেতে পারেন।

জায়গা অটোমেটিক সম্পূর্ণ করা (পুরনো ভার্সন) সংক্রান্ত অনুরোধ হল নিম্নলিখিত ফর্মের একটি HTTP URL:

https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters

যেখানে output নিম্নলিখিত মানগুলির মধ্যে যেকোনও একটি হতে পারে:

  • json (সাজেস্ট করা হয়েছে) জাভাস্ক্রিপ্ট অবজেক্ট নোটেশনে (JSON) আউটপুট দেখায়
  • xml XML হিসেবে আউটপুট দেখায়

Place Autocomplete (Legacy) অনুরোধ শুরু করার জন্য নির্দিষ্ট কিছু প্যারামিটার প্রয়োজন। URL-এর স্ট্যান্ডার্ড অনুযায়ী, সব প্যারামিটারকে অ্যামপারস্যান্ড (&) অক্ষর ব্যবহার করে আলাদা করা হয়। প্যারামিটারের তালিকা এবং সেগুলির সম্ভাব্য ভ্যালু নিচে উল্লেখ করা হল।

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

ইনপুট

যে টেক্সট স্ট্রিংয়ে সার্চ করতে হবে। 'জায়গা অটোমেটিক সম্পূর্ণ করা' পরিষেবা এই স্ট্রিংয়ের ভিত্তিতে সম্ভাব্য ম্যাচ দেখাবে এবং প্রাসঙ্গিকতা অনুযায়ী ফলাফল সাজাবে।

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

কম্পোনেন্ট

আপনি যেসব জায়গায় আপনার ফলাফল সীমাবদ্ধ করতে চান সেগুলির একটি গ্রুপিং। আপনি সর্বাধিক ৫টি দেশ অনুযায়ী ফিল্টার করতে কম্পোনেন্ট ব্যবহার করতে পারবেন। দেশ অবশ্যই দুই অক্ষরের ISO 3166-1 Alpha-2 মানানসই দেশের কোড হিসেবে পাস করতে হবে। যেমন: components=country:fr লিখলে ফ্রান্সের মধ্যে থাকা জায়গাগুলিই শুধু ফলাফলে দেখানো হবে। একাধিক দেশ অবশ্যই একাধিক country:XX ফিল্টার হিসেবে পাস করতে হবে, যেখানে পাইপ অক্ষর | বিভাজক হিসেবে কাজ করবে। যেমন: components=country:us|country:pr|country:vi|country:gu|country:mp মার্কিন যুক্তরাষ্ট্র এবং এর অসংগঠিত অঞ্চলের মধ্যে আপনার ফলাফল সীমাবদ্ধ করবে।

মনে রাখবেন: কোনও দেশের কোড ব্যবহার করে আপনি অপ্রত্যাশিত ফলাফল পেলে, আপনি যে কোড ব্যবহার করছেন সেটি আপনার অভিপ্রেত দেশ, নির্ভরশীল অঞ্চল এবং ভৌগোলিক আগ্রহের বিশেষ এলাকার জন্য প্রযোজ্য কিনা তা যাচাই করুন। আপনি কোড সংক্রান্ত তথ্য Wikipedia: ISO 3166 দেশের কোডের তালিকা অথবা ISO অনলাইন ব্রাউজিং প্ল্যাটফর্ম থেকে পেতে পারেন।

ভাষা

যে ভাষায় ফলাফল দেখানো হবে।

  • অনুমোদিত ভাষার তালিকা দেখুন। Google প্রায়ই কাজ করে এমন ভাষার তালিকা আপডেট করে, তাই এই তালিকা সম্পূর্ণ নাও হতে পারে।
  • language প্রদান করা না হলে, API Accept-Language হেডারে উল্লেখ করা পছন্দের ভাষা ব্যবহার করার চেষ্টা করে।
  • API এমন রাস্তার ঠিকানা প্রদান করার যথাসাধ্য চেষ্টা করে যা ব্যবহারকারী ও স্থানীয় লোকজন উভয়ের জন্যই বোধগম্য হয়। এই লক্ষ্য পূরণ করতে, এটি স্থানীয় ভাষায় রাস্তার ঠিকানা ফেরত পাঠায়, যা ব্যবহারকারীর পছন্দের ভাষা অনুযায়ী, প্রয়োজনে ব্যবহারকারীর পড়ার উপযোগী স্ক্রিপ্টে লিপ্যন্তর করা হয়। অন্যান্য সব ঠিকানা পছন্দের ভাষায় দেখানো হয়। ঠিকানার সব কম্পোনেন্ট একই ভাষায় দেখানো হয়, যা প্রথম কম্পোনেন্ট থেকে বেছে নেওয়া হয়।
  • পছন্দের ভাষায় কোনও নাম উপলভ্য না থাকলে, API সবচেয়ে কাছাকাছি ম্যাচ ব্যবহার করে।
  • API যে ফলাফল দেখায় এবং যে ক্রমে দেখায়, তার উপর পছন্দের ভাষার সামান্য প্রভাব থাকে। জিওকোডার ভাষার উপর নির্ভর করে সংক্ষিপ্ত রূপকে ভিন্নভাবে ব্যাখ্যা করে, যেমন রাস্তার প্রকারের সংক্ষিপ্ত রূপ বা সমার্থক শব্দ যা একটি ভাষায় বৈধ হতে পারে কিন্তু অন্য ভাষায় নয়। যেমন, হাঙ্গেরিয়ান ভাষায় utca এবং tér হল রাস্তার সমার্থক শব্দ।

লোকেশন

যে পয়েন্টের আশেপাশে জায়গার তথ্য পাওয়া যাবে। এটি অবশ্যই latitude,longitude হিসেবে উল্লেখ করতে হবে। লোকেশন নির্দিষ্ট করার সময় radius প্যারামিটারও প্রদান করতে হবে। radius প্রদান করা না হলে, location প্যারামিটার উপেক্ষা করা হয়।

Text Search API ব্যবহার করার সময়, `location` প্যারামিটার ওভাররাইড করা হতে পারে যদি `query`-তে নির্দিষ্ট লোকেশন থাকে, যেমন `Market in Barcelona`।

locationbias

নির্দিষ্ট এলাকায় ফলাফল পেতে, ব্যাসার্ধের সাথে অক্ষাংশ/দ্রাঘিমাংশ অথবা দুটি অক্ষাংশ/দ্রাঘিমাংশ জোড়া উল্লেখ করুন যা আয়তক্ষেত্রের বিন্দুগুলিকে দেখায়। এই প্যারামিটার নির্দিষ্ট করা না থাকলে, API ডিফল্ট হিসেবে IP অ্যাড্রেস বায়াসিং ব্যবহার করে।

  • IP বায়াস: IP অ্যাড্রেস বায়াসিং ব্যবহার করার জন্য API-কে নির্দেশ দেয়। স্ট্রিং পাস করুন ipbias (এই বিকল্পে কোনও অতিরিক্ত প্যারামিটার নেই)।
  • বৃত্তাকার: মিটারে ব্যাসার্ধ এবং দশমিক ডিগ্রিতে অক্ষাংশ/দ্রাঘিমাংশ উল্লেখ করে এমন একটি স্ট্রিং। নিম্নলিখিত ফর্ম্যাট ব্যবহার করুন: circle:radius@lat,lng।
  • আয়তাকার: দশমিক ডিগ্রিতে দুটি অক্ষাংশ/দ্রাঘিমাংশ জোড়া নির্দিষ্ট করে এমন একটি স্ট্রিং, যা একটি আয়তক্ষেত্রের দক্ষিণ/পশ্চিম এবং উত্তর/পূর্ব পয়েন্টকে উপস্থাপন করে। নিম্নলিখিত ফর্ম্যাট ব্যবহার করুন:rectangle:south,west|north,east। মনে রাখবেন যে পূর্ব/পশ্চিম ভ্যালু -১৮০, ১৮০ রেঞ্জে এবং উত্তর/দক্ষিণ ভ্যালু -৯০, ৯০ রেঞ্জে সীমাবদ্ধ।

locationrestriction

একটি নির্দিষ্ট ব্যাসার্ধ এবং অক্ষাংশ/দ্রাঘিমাংশ অথবা একটি আয়তক্ষেত্রের বিন্দুগুলিকে উপস্থাপন করে এমন দুটি অক্ষাংশ/দ্রাঘিমাংশ জোড়া নির্দিষ্ট করে, একটি নির্দিষ্ট এলাকায় ফলাফল সীমাবদ্ধ করুন।

  • বৃত্তাকার: মিটারে ব্যাসার্ধ এবং দশমিক ডিগ্রিতে অক্ষাংশ/দ্রাঘিমাংশ উল্লেখ করে এমন একটি স্ট্রিং। নিম্নলিখিত ফর্ম্যাট ব্যবহার করুন: circle:radius@lat,lng।
  • আয়তাকার: দশমিক ডিগ্রিতে দুটি অক্ষাংশ/দ্রাঘিমাংশ জোড়া নির্দিষ্ট করে এমন একটি স্ট্রিং, যা একটি আয়তক্ষেত্রের দক্ষিণ/পশ্চিম এবং উত্তর/পূর্ব পয়েন্টকে উপস্থাপন করে। নিম্নলিখিত ফর্ম্যাট ব্যবহার করুন:rectangle:south,west|north,east। মনে রাখবেন যে পূর্ব/পশ্চিম ভ্যালু -১৮০, ১৮০ রেঞ্জে এবং উত্তর/দক্ষিণ ভ্যালু -৯০, ৯০ রেঞ্জে সীমাবদ্ধ।

অফসেট

ইনপুট শব্দে, শেষ অক্ষরের অবস্থান যা পরিষেবা পূর্বাভাস মেলাতে ব্যবহার করে। যেমন, ইনপুট যদি Google হয় এবং অফসেট ৩ হয়, তাহলে পরিষেবা Goo-এর সাথে ম্যাচ করবে। অফসেট দ্বারা নির্ধারিত স্ট্রিংটি শুধুমাত্র ইনপুট শব্দের প্রথম শব্দের সাথে ম্যাচ করা হয়। যেমন, ইনপুট শব্দ Google abc এবং অফসেট ৩ হলে, পরিষেবাটি Goo abc-এর সাথে ম্যাচ করার চেষ্টা করবে। কোনও অফসেট প্রদান করা না হলে, পরিষেবাটি পুরো শব্দ ব্যবহার করবে। অফসেট সাধারণত টেক্সট ক্যারেটের পজিশনে সেট করা উচিত।

উৎস

যে উৎস বিন্দু থেকে গন্তব্যের সরলরৈখিক দূরত্ব গণনা করা হবে (distance_meters হিসেবে ফেরত দেওয়া হয়)। এই মান বাদ দেওয়া হলে, সরলরৈখিক দূরত্ব ফেরত দেওয়া হবে না। অবশ্যই latitude,longitude হিসেবে উল্লেখ করতে হবে।

যতটা অঞ্চল জুড়ে টার্গেট করা যাবে

দূরত্ব (মিটারে) নির্ধারণ করে যার মধ্যে জায়গার ফলাফল দেখাতে হবে। আপনি location এবং radius প্যারামিটার পাস করে নির্দিষ্ট সার্কেলের জন্য ফলাফল বায়াস করতে পারেন। এটি করলে Places পরিষেবা সেই বৃত্তের মধ্যে ফলাফল দেখানোর জন্য অগ্রাধিকার দেয়; তবে নির্দিষ্ট করা এলাকার বাইরের ফলাফলও দেখানো হতে পারে।

সার্চের ধরন ও অন্যান্য প্যারামিটারের উপর নির্ভর করে ব্যাসার্ধ অটোমেটিক সর্বাধিক মানে ক্ল্যাম্প করা হবে।

  • অটো-কমপ্লিট: ৫০,০০০ মিটার
  • নিয়ারবাই Search:
    • keyword বা name-এর সাথে: ৫০,০০০ মিটার
    • keyword বা name ছাড়া
      • ৫০,০০০ মিটার পর্যন্ত, এলাকার ঘনত্বের উপর ভিত্তি করে ডায়নামিকভাবে অ্যাডজাস্ট করা হয়, rankby প্যারামিটার থেকে স্বাধীন।
      • rankby=distance ব্যবহার করার সময়, ব্যাসার্ধ প্যারামিটার গ্রহণ করা হবে না এবং এর ফলে INVALID_REQUEST হবে।
  • কোয়েরি অটোকমপ্লিট: ৫০,০০০ মিটার
  • টেক্সট সার্চ: ৫০,০০০ মিটার

অঞ্চল

অঞ্চল কোড, যা ccTLD ("টপ-লেভেল ডোমেন") দুটি অক্ষরের মান হিসেবে উল্লেখ করা হয়। বেশিরভাগ ccTLD কোড ISO 3166-1 কোডের মতোই, তবে কিছু ব্যতিক্রম আছে। যেমন, যুক্তরাজ্যের ccTLD হল "uk" (.co.uk) এবং এর ISO 3166-1 কোড হল "gb" (টেকনিক্যালি "The United Kingdom of Great Britain and Northern Ireland" এন্টিটির জন্য)।

sessiontoken

একটি র‍্যান্ডম স্ট্রিং যা বিলিংয়ের উদ্দেশ্যে একটি অটো-কমপ্লিট সেশন শনাক্ত করে।

ব্যবহারকারী কোনও কোয়েরি টাইপ করা শুরু করলে সেশন শুরু হয় এবং তিনি কোনও জায়গা বেছে নিলে এবং জায়গার বিবরণ কল করা হলে সেশন শেষ হয়। প্রতিটি সেশনে একাধিক কোয়েরি থাকতে পারে, যার পরে একটি জায়গা বেছে নেওয়া হয়। সেশনের মধ্যে প্রতিটি অনুরোধের জন্য ব্যবহৃত API কী একই Google Cloud Console প্রোজেক্টের হতে হবে। সেশন শেষ হয়ে গেলে, টোকেন আর বৈধ থাকে না; আপনার অ্যাপকে প্রতিটি সেশনের জন্য নতুন টোকেন জেনারেট করতে হবে। sessiontoken প্যারামিটার বাদ দেওয়া হলে অথবা আপনি সেশন টোকেন আবার ব্যবহার করলে, সেশন টোকেন প্রদান না করা হলে যেভাবে চার্জ করা হয়, সেশনের জন্য সেইভাবেই চার্জ করা হয় (প্রতিটি অনুরোধের জন্য আলাদাভাবে বিল করা হয়)।

আমরা নিম্নলিখিত নির্দেশিকা সাজেস্ট করি:

  • সব অটোমেটিক সম্পূর্ণ হওয়া সেশনের জন্য সেশন টোকেন ব্যবহার করুন।
  • প্রতিটি সেশনের জন্য নতুন টোকেন জেনারেট করুন। ভার্সন 4 UUID ব্যবহার করার জন্য সাজেস্ট করা হয়।
  • নিশ্চিত করুন যে সেশনের মধ্যে সমস্ত জায়গা অটোমেটিক সম্পূর্ণ করা এবং জায়গার বিবরণ অনুরোধের জন্য ব্যবহৃত API কী(গুলি) একই Cloud Console প্রজেক্টের অন্তর্গত।
  • প্রতিটি নতুন সেশনের জন্য একটি অনন্য সেশন টোকেন পাস করতে ভুলবেন না। একাধিক সেশনের জন্য একই টোকেন ব্যবহার করলে, প্রতিটি অনুরোধের জন্য আলাদাভাবে বিল করা হবে।

strictbounds

শুধুমাত্র সেইসব জায়গার তথ্য দেখায় যেগুলি location এবং radius-এর মাধ্যমে সংজ্ঞায়িত অঞ্চলের মধ্যে পড়ে। এটি একটি বিধিনিষেধ, পক্ষপাতিত্ব নয়, যার অর্থ হল এই অঞ্চলের বাইরের ফলাফল ব্যবহারকারীর ইনপুটের সাথে মিললেও দেখানো হবে না।

ধরন

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

কোনও জায়গার শুধু একটিই একক প্রাইমারি ধরন থাকতে পারে যা সারণী ১ বা সারণী ২-এ তালিকাভুক্ত ধরন থেকে বেছে নিতে হবে। যেমন, যে হোটেলে খাবার পরিবেশন করা হয় সেটি শুধু types=lodging দিয়ে সার্চ করলে দেখানো হতে পারে, types=restaurant দিয়ে নয়।

types প্যারামিটারের ভ্যালুর জন্য আপনি এগুলির মধ্যে যেকোনও একটি উল্লেখ করতে পারেন:

  • টেবিল ১ অথবা টেবিল ২ থেকে সর্বাধিক পাঁচটি ভ্যালু। একাধিক ভ্যালুর ক্ষেত্রে, প্রতিটি ভ্যালু | (ভার্টিক্যাল বার) দিয়ে আলাদা করুন। যেমন:

    types=book_store|cafe

  • সারণী ৩-এ কাজ করে এমন যেকোনও একটি ফিল্টার। আপনি বিভিন্ন ধরনের কালেকশন একসাথে করতে পারবেন না।

অনুরোধটি INVALID_REQUEST সমস্যার সাথে বাতিল করা হবে যদি:

  • পাঁচটির বেশি ধরন নির্দিষ্ট করা হয়েছে।
  • কোনও অচেনা ধরন আছে কিনা।
  • সারণী ১ বা সারণী ২-এর যেকোনও ধরনের ফিল্টার সারণী ৩-এর যেকোনও ফিল্টারের সাথে মিক্স করা হয়।

জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) সংক্রান্ত উদাহরণ

ক্যালিফোর্নিয়ার সান ফ্রান্সিসকোতে কেন্দ্র করে একটি এলাকার মধ্যে "Amoeba" স্ট্রিং রয়েছে এমন প্রতিষ্ঠানের জন্য অনুরোধ:

ইউআরএল

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=amoeba
      &types=establishment
      &location=37.76999%2C-122.44696
      &radius=500
      &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&key=YOUR_API_KEY'

একই অনুরোধ, অ্যাশবেরি স্ট্রিট ও হাইট স্ট্রিট, সান ফ্রান্সিসকোর ৫০০ মিটারের মধ্যে ফলাফল সীমাবদ্ধ:

ইউআরএল

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=amoeba
      &types=establishment
      &location=37.76999%2C-122.44696&radius=500
      &strictbounds=true
      &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&strictbounds=true&key=YOUR_API_KEY'

"Vict" আছে এমন ঠিকানা খোঁজার অনুরোধের ফলাফল ফরাসি ভাষায়:

ইউআরএল

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Vict
      &types=geocode
      &language=fr
      &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&key=YOUR_API_KEY'

"Vict" আছে এমন শহরের জন্য অনুরোধ, ফলাফল ব্রাজিলিয়ান পর্তুগীজ ভাষায়:

ইউআরএল

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Vict
      &types=(cities)
      &language=pt_BR&key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=(cities)&language=pt_BR&key=YOUR_API_KEY'

মনে রাখবেন যে আপনাকে এইসব উদাহরণে API key আপনার নিজস্ব 'কী' দিয়ে পরিবর্তন করতে হবে।

জায়গা অটোমেটিক সম্পূর্ণ করা (পুরনো) সংক্রান্ত উত্তর

জায়গা অটোমেটিক সম্পূর্ণ করা (পুরনো) সংক্রান্ত উত্তর, অনুরোধের URL পাথের মধ্যে output ফ্ল্যাগ দ্বারা নির্দেশিত ফর্ম্যাটে ফেরত পাঠানো হয়। নিচে দেখানো ফলাফলগুলি নিম্নলিখিত প্যারামিটার সহ কোয়েরির জন্য কী দেখানো হতে পারে তার ইঙ্গিত দেয়:

ইউআরএল

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Paris
      &types=geocode
      &key=YOUR_API_KEY

কার্ল

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Paris&types=geocode&key=YOUR_API_KEY'

JSON

{
  "predictions":
    [
      {
        "description": "Paris, France",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
        "reference": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "France",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "France" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, TX, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJmysnFgZYSoYRSfPTL2YJuck",
        "reference": "ChIJmysnFgZYSoYRSfPTL2YJuck",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "TX, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "TX" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, TN, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJ4zHP-Sije4gRBDEsVxunOWg",
        "reference": "ChIJ4zHP-Sije4gRBDEsVxunOWg",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "TN, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "TN" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, Brant, ON, Canada",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJsamfQbVtLIgR-X18G75Hyi0",
        "reference": "ChIJsamfQbVtLIgR-X18G75Hyi0",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "Brant, ON, Canada",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "Brant" },
            { "offset": 14, "value": "ON" },
            { "offset": 18, "value": "Canada" },
          ],
        "types": ["neighborhood", "political", "geocode"],
      },
      {
        "description": "Paris, KY, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJsU7_xMfKQ4gReI89RJn0-RQ",
        "reference": "ChIJsU7_xMfKQ4gReI89RJn0-RQ",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "KY, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "KY" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
    ],
  "status": "OK",
}

XML

    
<?xml version="1.0" encoding="UTF-8"?>
<AutocompletionResponse>
 <status>OK</status>
 <prediction>
  <description>Paris, France</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>France</value>
   <offset>7</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>France</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, TX, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJmysnFgZYSoYRSfPTL2YJuck</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>TX</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJmysnFgZYSoYRSfPTL2YJuck</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>TX, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, TN, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJ4zHP-Sije4gRBDEsVxunOWg</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>TN</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJ4zHP-Sije4gRBDEsVxunOWg</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>TN, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, Brant, ON, Canada</description>
  <type>neighborhood</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJsamfQbVtLIgR-X18G75Hyi0</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>Brant</value>
   <offset>7</offset>
  </term>
  <term>
   <value>ON</value>
   <offset>14</offset>
  </term>
  <term>
   <value>Canada</value>
   <offset>18</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJsamfQbVtLIgR-X18G75Hyi0</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>Brant, ON, Canada</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, KY, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJsU7_xMfKQ4gReI89RJn0-RQ</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>KY</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJsU7_xMfKQ4gReI89RJn0-RQ</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>KY, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
</AutocompletionResponse>

   

PlacesAutocompleteResponse

ফিল্ড প্রয়োজনীয় ধরন বিবরণ
প্রয়োজনীয় Array<PlaceAutocompletePrediction>

এতে পূর্বাভাসের একটি অ্যারে থাকে।

আরও তথ্যের জন্য PlaceAutocompletePrediction দেখুন।

প্রয়োজনীয় PlacesAutocompleteStatus

এতে অনুরোধের স্ট্যাটাস থাকে এবং অনুরোধ কেন ব্যর্থ হয়েছে তা ট্র্যাক করতে সাহায্য করার জন্য ডিবাগিং তথ্য থাকতে পারে।

আরও তথ্যের জন্য PlacesAutocompleteStatus দেখুন।

ঐচ্ছিক স্ট্রিং

পরিষেবাটি OK< ছাড়া অন্য কোনও স্ট্যাটাস কোড রিটার্ন করলে, রেসপন্স অবজেক্টের মধ্যে একটি অতিরিক্ত error_message ফিল্ড থাকতে পারে। এই ফিল্ডে স্ট্যাটাস কোড দেওয়ার কারণ সম্পর্কে আরও বিস্তারিত তথ্য থাকে। এই ফিল্ড সবসময় ফেরত দেওয়া হয় না এবং এর কন্টেন্ট পরিবর্তন করা হতে পারে।

ঐচ্ছিক Array<string>

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

ফলাফলের মধ্যে বিশেষ আগ্রহের বিষয় হল place_id এলিমেন্ট, যা আলাদা কোয়েরি ব্যবহার করে জায়গা সম্পর্কে আরও নির্দিষ্ট বিবরণ অনুরোধ করতে ব্যবহার করা যেতে পারে। জায়গার বিবরণ (পুরনো) অনুরোধ দেখুন।

XML রেসপন্সে একটি মাত্র <AutocompletionResponse> এলিমেন্ট থাকে যার মধ্যে দুই ধরনের চাইল্ড এলিমেন্ট থাকে:

আমরা সাজেস্ট করি যে আপনি পছন্দের আউটপুট ফ্ল্যাগ হিসেবে json ব্যবহার করুন যদি না আপনার অ্যাপ্লিকেশনের কোনও কারণে xml-এর প্রয়োজন হয়। XML ট্রি প্রসেস করার সময় আপনাকে সতর্ক থাকতে হবে যাতে আপনি সঠিক নোড ও এলিমেন্ট রেফারেন্স করেন। XML প্রসেস করার ব্যাপারে সাহায্য পেতে XPath-এর মাধ্যমে XML প্রসেস করা দেখুন।

PlacesAutocompleteStatus

পরিষেবা থেকে স্ট্যাটাস কোড পাঠানো হয়েছে।

  • OK API অনুরোধ সফল হয়েছে তা নির্দেশ করছে।
  • ZERO_RESULTS ইঙ্গিত করে যে সার্চ সফল হয়েছে কিন্তু কোনও ফলাফল পাওয়া যায়নি। কোনও দূরবর্তী লোকেশনে সার্চের বাউন্ডস পাস করা হলে এটি হতে পারে।
  • INVALID_REQUEST API অনুরোধটি ভুলভাবে তৈরি করা হয়েছে, সাধারণত input প্যারামিটার অনুপস্থিত থাকার কারণে।
  • OVER_QUERY_LIMIT নিম্নলিখিত যেকোনও একটি নির্দেশ করে:
    • আপনি QPS সীমা অতিক্রম করেছেন।
    • আপনার অ্যাকাউন্টে বিলিং চালু করা হয়নি।
    • মাসিক $২০০ ক্রেডিট বা নিজের উপর আরোপ করা ব্যবহারের সীমা অতিক্রম করা হয়েছে।
    • প্রদান করা পেমেন্ট পদ্ধতি আর বৈধ নয় (যেমন, ক্রেডিট কার্ডের মেয়াদ শেষ হয়ে গেছে)।
    এই সমস্যার সমাধান কীভাবে করবেন সেই সম্পর্কে আরও জানতে Maps-এর প্রায়শই জিজ্ঞাসিত প্রশ্ন দেখুন।
  • REQUEST_DENIED, যা থেকে বোঝা যায় যে আপনার অনুরোধ প্রত্যাখ্যান করা হয়েছে, সাধারণত এই কারণে:
    • অনুরোধে API key নেই।
    • key প্যারামিটারটি সঠিক নয়।
  • UNKNOWN_ERROR অজানা সমস্যার ইঙ্গিত দিচ্ছে।

Places পরিষেবা কোনও সার্চ থেকে JSON ফলাফল রিটার্ন করলে, এটি সেগুলিকে predictions অ্যারের মধ্যে রাখে। পরিষেবা কোনও ফলাফল না দেখালেও (যেমন location রিমোট হলে) এটি এখনও খালি predictions অ্যারে দেখায়। XML উত্তরে শূন্য বা তার বেশি <prediction> এলিমেন্ট থাকে।

PlaceAutocompletePrediction

ফিল্ড প্রয়োজনীয় ধরন বিবরণ
প্রয়োজনীয় স্ট্রিং

ফলাফলের জন্য মানুষের-পঠনযোগ্য নাম থাকে। establishment ফলাফলের জন্য, এটি সাধারণত ব্যবসার নাম। এই কন্টেন্ট যেমন আছে তেমনই পড়তে হবে। ফর্ম্যাট করা ঠিকানা প্রোগ্রাম্যাটিক্যালি পার্স করবেন না।

প্রয়োজনীয় Array<PlaceAutocompleteMatchedSubstring>

সাবস্ট্রিংয়ের একটি তালিকা যা পূর্বাভাসের ফলাফল টেক্সটে লেখা শব্দের লোকেশন বর্ণনা করে, যাতে শব্দটি বেছে নেওয়া হলে হাইলাইট করা যায়।

আরও তথ্যের জন্য PlaceAutocompleteMatchedSubstring দেখুন।

প্রয়োজনীয় PlaceAutocompleteStructuredFormat

প্রি-ফর্ম্যাট করা টেক্সট প্রদান করে যা আপনার অটোকমপ্লিট ফলাফলে দেখানো যেতে পারে। এই কন্টেন্ট যেমন আছে তেমনই পড়তে হবে। ফর্ম্যাট করা ঠিকানা প্রোগ্রাম্যাটিক্যালি পার্স করবেন না।

আরও তথ্যের জন্য PlaceAutocompleteStructuredFormat দেখুন।

প্রয়োজনীয় Array<PlaceAutocompleteTerm>

এতে ফেরত পাঠানো বিবরণের প্রতিটি বিভাগ শনাক্তকারী শব্দের অ্যারে থাকে (বিবরণের একটি বিভাগ সাধারণত কমা দিয়ে শেষ হয়)। অ্যারের প্রতিটি এন্ট্রিতে একটি value ফিল্ড থাকে, যাতে শব্দের টেক্সট থাকে এবং একটি offset ফিল্ড থাকে, যা বিবরণে এই শব্দের শুরুর পজিশন নির্ধারণ করে, ইউনিকোড অক্ষরে পরিমাপ করা হয়।

আরও তথ্যের জন্য PlaceAutocompleteTerm দেখুন।

ঐচ্ছিক পূর্ণসংখ্যা

উৎস থেকে মিটারে সরলরৈখিক দূরত্ব। এই ফিল্ডটি শুধুমাত্র origin-এর মাধ্যমে করা অনুরোধের জন্য রিটার্ন করা হয়।

ঐচ্ছিক স্ট্রিং

একটি টেক্সট শনাক্তকারী যা অনন্যভাবে একটি স্থান শনাক্ত করে। জায়গাটি সম্পর্কে তথ্য পেতে, Places API অনুরোধের placeId ফিল্ডে এই শনাক্তকারী পাস করুন। প্লেস আইডি সম্পর্কে আরও তথ্যের জন্য, প্লেস আইডি ওভারভিউ দেখুন।

ঐচ্ছিক স্ট্রিং

place_id দেখুন।

ঐচ্ছিক Array<string>

এই জায়গার ক্ষেত্রে প্রযোজ্য এমন ধরনের অ্যারে রয়েছে। যেমন: [ "political", "locality" ] অথবা [ "establishment", "geocode", "beauty_salon" ]। অ্যারেতে একাধিক ভ্যালু থাকতে পারে। জায়গার ধরন সম্পর্কে আরও জানুন।

PlaceAutocompleteMatchedSubstring

ফিল্ড প্রয়োজনীয় ধরন বিবরণ
প্রয়োজনীয় নম্বর

পূর্বানুমান করা ফলাফলের টেক্সটে মিলে যাওয়া সাবস্ট্রিংয়ের দৈর্ঘ্য।

প্রয়োজনীয় নম্বর

পূর্বাভাস ফলাফলের টেক্সটে মিলে যাওয়া সাবস্ট্রিংয়ের শুরুর লোকেশন।

PlaceAutocompleteStructuredFormat

ফিল্ড প্রয়োজনীয় ধরন বিবরণ
প্রয়োজনীয় স্ট্রিং

পূর্বাভাসের মূল টেক্সট থাকে, সাধারণত জায়গার নাম।

প্রয়োজনীয় Array<PlaceAutocompleteMatchedSubstring>

এতে offset ভ্যালু এবং length সহ একটি অ্যারে রয়েছে। এগুলি থেকে বোঝা যায় যে লেখা শব্দটি পূর্বাভাসের ফলাফলে কোথায় আছে, যাতে শব্দটি বেছে নেওয়া হলে হাইলাইট করা যায়।

আরও তথ্যের জন্য PlaceAutocompleteMatchedSubstring দেখুন।

ঐচ্ছিক স্ট্রিং

পূর্বানুমানের সেকেন্ডারি টেক্সট থাকে, সাধারণত জায়গার লোকেশন।

ঐচ্ছিক Array<PlaceAutocompleteMatchedSubstring>

এতে offset ভ্যালু এবং length সহ একটি অ্যারে রয়েছে। এগুলি থেকে বোঝা যায় যে লেখা শব্দটি পূর্বাভাসের ফলাফলে কোথায় আছে, যাতে শব্দটি বেছে নেওয়া হলে হাইলাইট করা যায়।

আরও তথ্যের জন্য PlaceAutocompleteMatchedSubstring দেখুন।

PlaceAutocompleteTerm

ফিল্ড প্রয়োজনীয় ধরন বিবরণ
প্রয়োজনীয় নম্বর

বিবরণে এই শব্দের শুরুর পজিশন নির্ধারণ করে, ইউনিকোড ক্যারেক্টারে পরিমাপ করা হয়

প্রয়োজনীয় স্ট্রিং

শর্তাবলীর টেক্সট।

Place Autocomplete (Legacy) অপ্টিমাইজেশন

এই বিভাগে, Place Autocomplete (Legacy) পরিষেবা থেকে সর্বাধিক সুবিধা পেতে আপনাকে সাহায্য করার জন্য পেশাদার পদ্ধতিগুলি বর্ণনা করা হয়েছে।

এখানে কিছু সাধারণ নির্দেশিকা দেওয়া হল:

  • কাজ করে এমন ইউজার ইন্টারফেস ডেভেলপ করার সবচেয়ে দ্রুত উপায় হল Maps JavaScript API জায়গা অটোমেটিক সম্পূর্ণ করা (Legacy) উইজেট, Android-এর জন্য Places SDK জায়গা অটোমেটিক সম্পূর্ণ করা (Legacy) উইজেট, অথবা iOS-এর জন্য Places SDK জায়গা অটোমেটিক সম্পূর্ণ করা (Legacy) UI কন্ট্রোল ব্যবহার করা।
  • শুরু থেকেই Place Autocomplete (Legacy) ডেটা ফিল্ড সম্পর্কে প্রয়োজনীয় তথ্য জেনে নিন।
  • লোকেশন বায়াসিং ও লোকেশন সংক্রান্ত বিধিনিষেধের ফিল্ডগুলি ঐচ্ছিক হলেও, অটো-কমপ্লিট পারফর্ম্যান্সের উপর এগুলির উল্লেখযোগ্য প্রভাব থাকতে পারে।
  • API কোনও সমস্যা রিটার্ন করলে, আপনার অ্যাপ যাতে ঠিকভাবে কাজ করা বন্ধ করে দেয় তা নিশ্চিত করতে সমস্যা ম্যানেজ করার সুবিধা ব্যবহার করুন।
  • কোনও কিছু বেছে না নেওয়া হলে আপনার অ্যাপ যেন সেটি ম্যানেজ করতে পারে এবং ব্যবহারকারীকে চালিয়ে যাওয়ার উপায় অফার করে তা নিশ্চিত করুন।

খরচ অপ্টিমাইজ করার পেশাদার পদ্ধতি

প্রাথমিক খরচ অপ্টিমাইজেশন

Place Autocomplete (Legacy) পরিষেবা ব্যবহারের খরচ অপ্টিমাইজ করতে, Place Details (Legacy) এবং Place Autocomplete (Legacy) উইজেটে ফিল্ড মাস্ক ব্যবহার করুন যাতে শুধুমাত্র Place Autocomplete (Legacy) ডেটা ফিল্ড ফেরত পাওয়া যায়।

উন্নত খরচ অপ্টিমাইজেশন

Place Autocomplete (Legacy) অ্যাক্সেস করার জন্য প্রোগ্রাম্যাটিক ইমপ্লিমেন্টেশন বিবেচনা করুন SKU: Autocomplete - প্রতি অনুরোধের জন্য মূল্য এবং Place Details (Legacy)-এর পরিবর্তে বেছে নেওয়া জায়গার জন্য Geocoding API ফলাফল অনুরোধ করুন। Geocoding API-এর সাথে পেয়ার করা প্রতি-অনুরোধের মূল্য প্রতি-সেশন (সেশন-ভিত্তিক) মূল্যের চেয়ে বেশি সাশ্রয়ী হয় যদি নিম্নলিখিত দুটি শর্তই পূরণ হয়:

  • ব্যবহারকারীর বেছে নেওয়া জায়গার শুধু অক্ষাংশ ও দ্রাঘিমাংশ বা ঠিকানা প্রয়োজন হলে, Geocoding API এই তথ্য প্রদান করে, যা জায়গার বিবরণ (লিগ্যাসি) কলের চেয়ে কম।
  • ব্যবহারকারীরা যদি গড়ে চারটি বা তার কম প্লেস অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) পূর্বাভাসের অনুরোধের মধ্যে একটি অটোমেটিক সম্পূর্ণ করার পূর্বাভাস বেছে নেন, তাহলে প্রতি-অনুরোধের মূল্য প্রতি-সেশনের মূল্যের চেয়ে বেশি সাশ্রয়ী হতে পারে।
আপনার অ্যাপ্লিকেশনের জন্য সবচেয়ে কম খরচের Place Autocomplete (Legacy) ইমপ্লিমেন্টেশন বেছে নিতে, নিম্নলিখিত সারণীতে আপনার অ্যাপ্লিকেশনের প্রয়োজনের সাথে মেলে এমন সারিটি খুঁজুন।
আপনার অ্যাপ্লিকেশনে কী কী প্রয়োজন ব্যবহারকারী কোনও পূর্বাভাস বেছে নেওয়ার আগে গড় জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) সংক্রান্ত অনুরোধ প্রয়োগ সংক্রান্ত সাজেশন
ঠিকানা ও লোকেশন ছাড়া জায়গার অন্যান্য বিবরণ, যেমন জায়গার নাম, ব্যবসার স্ট্যাটাস বা খোলা থাকার সময় যেকোনও নম্বর জায়গার বিবরণ (পুরনো) সহ সেশন-ভিত্তিক জায়গা অটোমেটিক সম্পূর্ণ করা (পুরনো)
শুধুমাত্র বেছে নেওয়া পূর্বাভাসের ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশ চারটি বা তার কম Geocoding API-এর সাথে প্রতি অনুরোধে জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি)
শুধুমাত্র বেছে নেওয়া পূর্বাভাসের ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশ চারটির বেশি শুধুমাত্র ঠিকানা-ভিত্তিক অ্যাপ্লিকেশনের জন্য সেশন-ভিত্তিক জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি)

আপনার Place Autocomplete (Legacy) ব্যবহারের পারফর্ম্যান্সের উপর নির্ভর করে, Geocoding API আপনার অ্যাপ্লিকেশনের জন্য Place Details (Legacy)-এর চেয়ে বেশি সাশ্রয়ী বিকল্প হতে পারে। প্রতিটি অ্যাপ্লিকেশনের Place Autocomplete (Legacy) কার্যকারিতা নির্ভর করে ব্যবহারকারীরা কী লিখছেন, অ্যাপ্লিকেশনটি কোথায় ব্যবহার করা হচ্ছে এবং পারফর্ম্যান্স অপ্টিমাইজেশনের পেশাদার পদ্ধতি প্রয়োগ করা হয়েছে কিনা তার উপর।

টেবিলের জন্য অনুরোধের গড় সংখ্যা খুঁজে পেতে, আপনার অ্যাপ্লিকেশনে একটি স্থান স্বয়ংসম্পূর্ণ (লিগ্যাসি) পূর্বাভাস নির্বাচন করার আগে একজন ব্যবহারকারী গড়ে কতগুলি অক্ষর টাইপ করেন তা বিশ্লেষণ করুন।

জায়গার বিবরণ (লিগ্যাসি) সহ সেশন-ভিত্তিক জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি)

জায়গার বিবরণ (লিগ্যাসি) সহ সেশন-ভিত্তিক জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) ব্যবহার করুন।
যেহেতু আপনার অ্যাপ্লিকেশনের জন্য জায়গার বিবরণ (লিগ্যাসি) প্রয়োজন, যেমন জায়গার নাম, ব্যবসার স্ট্যাটাস বা খোলা থাকার সময়, তাই আপনার জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) ফিচারের প্রয়োগে সেশন টোকেন (প্রোগ্রাম্যাটিক্যালি বা JavaScript, Android বা iOS উইজেটে বিল্ট-ইন) প্রতি সেশনে এবং প্রযোজ্য Places Data SKU ব্যবহার করা উচিত, আপনি কোন কোন জায়গার ডেটা ফিল্ডের জন্য অনুরোধ করছেন তার উপর নির্ভর করে।১

উইজেট প্রয়োগ করা
সেশন ম্যানেজমেন্ট অটোমেটিক JavaScript, Android, অথবা iOS উইজেটে তৈরি করা হয়। এর মধ্যে জায়গা অটোমেটিক সম্পূর্ণ করা (Legacy) অনুরোধ এবং বেছে নেওয়া পূর্বাভাসের উপর জায়গার বিবরণ (Legacy) অনুরোধ অন্তর্ভুক্ত। আপনি যাতে শুধু প্রয়োজনীয় জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) ডেটা ফিল্ড অনুরোধ করেন তা নিশ্চিত করতে fields প্যারামিটার উল্লেখ করতে ভুলবেন না।

প্রোগ্রাম্যাটিক প্রয়োগ
আপনার Place Autocomplete (Legacy) অনুরোধের সাথে সেশন টোকেন ব্যবহার করুন। বেছে নেওয়া পূর্বাভাসের জন্য জায়গার বিবরণ (পুরনো) সংক্রান্ত অনুরোধ করার সময়, নিম্নলিখিত প্যারামিটারগুলি অন্তর্ভুক্ত করুন:

  1. প্লেস অটোকমপ্লিট (লিগ্যাসি) রেসপন্স থেকে প্লেস আইডি
  2. জায়গা অটোমেটিক সম্পূর্ণ করা (পুরনো) অনুরোধে সেশন টোকেন ব্যবহার করা হয়েছে
  3. fields প্যারামিটার যা আপনার প্রয়োজনীয় জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) ডেটা ফিল্ড নির্দিষ্ট করে

Geocoding API-এর সাথে প্রতি অনুরোধে জায়গা অটোমেটিক সম্পূর্ণ করা (পুরনো)

সেশন টোকেন ছাড়াই প্রোগ্রাম্যাটিকভাবে Place Autocomplete (Legacy) প্রয়োগ করুন এবং বেছে নেওয়া জায়গার পূর্বাভাসের উপর Geocoding API কল করুন।
Geocoding API ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক প্রদান করে। চারটি Autocomplete - Per Request অনুরোধ এবং বেছে নেওয়া জায়গার পূর্বাভাসের জন্য একটি Geocoding API কল করার খরচ, সেশন প্রতি Place Autocomplete (Legacy) খরচের চেয়ে কম।১

আপনার ব্যবহারকারীরা যাতে আরও কম অক্ষর ব্যবহার করে তাদের কাঙ্ক্ষিত পূর্বাভাস পেতে পারেন, তার জন্য পারফর্ম্যান্স সংক্রান্ত পেশাদার পদ্ধতি প্রয়োগ করার কথা বিবেচনা করুন।

শুধুমাত্র ঠিকানা সংক্রান্ত অ্যাপ্লিকেশনের জন্য সেশন-ভিত্তিক জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি)

জায়গার বিবরণ (লিগ্যাসি) সহ সেশন-ভিত্তিক জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) ব্যবহার করুন।
ব্যবহারকারী কোনও Place Autocomplete (Legacy) অনুমান বেছে নেওয়ার আগে আপনি যতগুলি অনুরোধ করবেন বলে আশা করেন, তার গড় সংখ্যা প্রতি সেশনের দামের থেকে বেশি, তাই আপনার Place Autocomplete (Legacy) প্রয়োগের ক্ষেত্রে Place Autocomplete (Legacy) অনুরোধ এবং সংশ্লিষ্ট Place Details (Legacy) অনুরোধ, উভয়ের জন্যই সেশন টোকেন ব্যবহার করা উচিত প্রতি সেশন। ১

উইজেট প্রয়োগ করা
সেশন ম্যানেজমেন্ট অটোমেটিক JavaScript, Android বা iOS উইজেটে তৈরি করা হয়। এর মধ্যে জায়গা অটোমেটিক সম্পূর্ণ করা (পুরনো) অনুরোধ এবং বেছে নেওয়া পূর্বাভাসের উপর জায়গার বিবরণ (পুরনো) অনুরোধ অন্তর্ভুক্ত। আপনার প্রয়োজনীয় ফিল্ডের জন্য অনুরোধ করছেন কিনা তা নিশ্চিত করতে fields প্যারামিটার উল্লেখ করতে ভুলবেন না।

প্রোগ্রাম্যাটিক প্রয়োগ
আপনার Place Autocomplete (Legacy) অনুরোধের সাথে সেশন টোকেন ব্যবহার করুন। বেছে নেওয়া পূর্বাভাসের জন্য জায়গার বিবরণ (পুরনো) সংক্রান্ত অনুরোধ করার সময়, নিম্নলিখিত প্যারামিটারগুলি অন্তর্ভুক্ত করুন:

  1. প্লেস অটোকমপ্লিট (লিগ্যাসি) রেসপন্স থেকে প্লেস আইডি
  2. জায়গা অটোমেটিক সম্পূর্ণ করা (পুরনো) অনুরোধে সেশন টোকেন ব্যবহার করা হয়েছে
  3. fields প্যারামিটার প্রাথমিক ডেটা ফিল্ড নির্দিষ্ট করে যেমন ঠিকানা ও জ্যামিতি

Place Autocomplete (Legacy) অনুরোধে দেরি করার কথা বিবেচনা করুন
আপনি এমন কৌশল অবলম্বন করতে পারেন, যেমন ব্যবহারকারী প্রথম তিন বা চারটি অক্ষর টাইপ না করা পর্যন্ত Place Autocomplete (Legacy) অনুরোধে দেরি করা, যাতে আপনার অ্যাপ্লিকেশন কম অনুরোধ করে। যেমন, ব্যবহারকারী তৃতীয় অক্ষর টাইপ করার পরে প্রতিটি অক্ষরের জন্য Place Autocomplete (Legacy) অনুরোধ করার অর্থ হল, ব্যবহারকারী সাতটি অক্ষর টাইপ করে একটি সাজেশন বেছে নিলে, যার জন্য আপনি একটি Geocoding API অনুরোধ করেন, তাহলে মোট খরচ হবে ৪টি Place Autocomplete (Legacy) প্রতি অনুরোধ + Geocoding।১

অনুরোধে দেরি করার ফলে আপনার গড় প্রোগ্রাম্যাটিক অনুরোধ চারের কম হলে, আপনি Geocoding API-এর সাথে পারফর্ম্যান্ট Place Autocomplete (Legacy) প্রয়োগ করার নির্দেশিকা অনুসরণ করতে পারেন। মনে রাখবেন, অনুরোধ পাঠাতে দেরি হলে ব্যবহারকারী মনে করতে পারেন যে লেটেন্সি হচ্ছে, কারণ তিনি হয়ত প্রতিটি নতুন কিস্ট্রোকে সাজেশন দেখতে চান।

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


  1. খরচের জন্য, Google Maps Platform-এর দামের তালিকা দেখুন।

পারফর্ম্যান্স সংক্রান্ত পেশাদার পদ্ধতি

নিচে উল্লেখ করা নির্দেশিকায় জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) পারফর্ম্যান্স অপ্টিমাইজ করার উপায় বর্ণনা করা হয়েছে:

  • আপনার 'জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি)' ইমপ্লিমেন্টেশনে নিষেধাজ্ঞা আছে এমন দেশ, লোকেশন বায়াসিং এবং (প্রোগ্রাম্যাটিক ইমপ্লিমেন্টেশনের জন্য) পছন্দের ভাষা যোগ করুন। উইজেটের ক্ষেত্রে ভাষার পছন্দ সেট করার প্রয়োজন নেই কারণ এটি ব্যবহারকারীর ব্রাউজার বা মোবাইল ডিভাইস থেকে ভাষার পছন্দ বেছে নেয়।
  • জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) ফিচারের সাথে ম্যাপ থাকলে, আপনি ম্যাপ ভিউপোর্ট অনুযায়ী লোকেশন বায়াস করতে পারবেন।
  • এমন পরিস্থিতিতে যখন কোনও ব্যবহারকারী জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) সংক্রান্ত পূর্বাভাসের মধ্যে থেকে কোনও একটি বেছে নেন না, সাধারণত কারণ সেইসব পূর্বাভাসের মধ্যে কোনওটিই কাঙ্ক্ষিত ফলাফল-ঠিকানা নয়, আপনি আরও প্রাসঙ্গিক ফলাফল পাওয়ার চেষ্টা করতে ব্যবহারকারীর আসল ইনপুট আবার ব্যবহার করতে পারেন:
    • আপনি যদি আশা করেন যে ব্যবহারকারী শুধুমাত্র ঠিকানা সংক্রান্ত তথ্য লিখবেন, তাহলে Geocoding API-তে কল করার সময় ব্যবহারকারীর আসল ইনপুট আবার ব্যবহার করুন।
    • ব্যবহারকারী নাম বা ঠিকানা দিয়ে নির্দিষ্ট কোনও জায়গার জন্য কোয়েরি লিখবেন বলে আপনি আশা করলে, জায়গার বিবরণ (লিগ্যাসি) সংক্রান্ত অনুরোধ ব্যবহার করুন। শুধুমাত্র নির্দিষ্ট অঞ্চলে ফলাফল প্রত্যাশিত হলে, লোকেশন বায়াসিং ব্যবহার করুন।
    অন্যান্য পরিস্থিতিতে Geocoding API-তে ফিরে যাওয়া সবচেয়ে ভালো, যার মধ্যে রয়েছে:
    • ব্যবহারকারীরা সাব-প্রিমাইজ ঠিকানা ইনপুট করছেন, যেমন কোনও বিল্ডিংয়ের মধ্যে নির্দিষ্ট ইউনিট বা অ্যাপার্টমেন্টের ঠিকানা। যেমন, চেক প্রজাতন্ত্রের ঠিকানা "Stroupežnického 3191/17, Praha" জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি) ফিচারে আংশিক পূর্বাভাস দেখায়।
    • ব্যবহারকারীরা রাস্তার সেগমেন্ট প্রিফিক্স সহ ঠিকানা ইনপুট করছেন, যেমন নিউ ইয়র্ক সিটিতে "23-30 29th St, Queens" বা হাওয়াইয়ের কাউয়াই দ্বীপে "47-380 Kamehameha Hwy, Kaneohe"।

লোকেশন বায়াসিং

location প্যারামিটার ও radius প্যারামিটার পাস করে নির্দিষ্ট এলাকার জন্য পক্ষপাতদুষ্ট ফলাফল দেখান। এটি 'জায়গা অটোমেটিক সম্পূর্ণ করা (লিগ্যাসি)' ফিচারকে নির্দিষ্ট এলাকার মধ্যে ফলাফল দেখানোর জন্য অগ্রাধিকার দিতে নির্দেশ দেয়। নির্দিষ্ট করা এলাকার বাইরের ফলাফল এখনও দেখানো হতে পারে। আপনি includedRegionCodes প্যারামিটার ব্যবহার করে ফলাফল ফিল্টার করতে পারেন যাতে শুধুমাত্র নির্দিষ্ট দেশের মধ্যে থাকা জায়গাগুলি দেখানো হয়।

লোকেশন সংক্রান্ত বিধিনিষেধ

locationRestriction প্যারামিটার পাস করে ফলাফল নির্দিষ্ট এলাকায় সীমাবদ্ধ করুন।

এছাড়াও, আপনি location এবং radius প্যারামিটার দ্বারা নির্ধারিত অঞ্চলে ফলাফল সীমাবদ্ধ করতে পারেন, এর জন্য strictbounds প্যারামিটার যোগ করতে হবে। এটি জায়গা অটোমেটিক সম্পূর্ণ করা (Legacy) ফিচারকে নির্দেশ দেয় যাতে সেটি শুধুমাত্র সেই অঞ্চলের মধ্যে ফলাফল দেখায়।