প্লেস অটোকমপ্লিট (লেগ্যাসি) একটি ওয়েব সার্ভিস যা একটি HTTP অনুরোধের জবাবে স্থানের পূর্বাভাস প্রদান করে। অনুরোধটিতে একটি টেক্সচুয়াল সার্চ স্ট্রিং এবং ঐচ্ছিক ভৌগোলিক সীমানা নির্দিষ্ট করা থাকে। এই সার্ভিসটি টেক্সট-ভিত্তিক ভৌগোলিক অনুসন্ধানের জন্য অটোকমপ্লিট কার্যকারিতা প্রদান করতে ব্যবহার করা যেতে পারে, যা ব্যবহারকারীর টাইপ করার সাথে সাথে ব্যবসা প্রতিষ্ঠান, ঠিকানা এবং দর্শনীয় স্থানের মতো তথ্য প্রদর্শন করে।
অটোকমপ্লিট (লেগ্যাসি) অনুরোধগুলি রাখুন
প্লেস অটোকমপ্লিট (লেগ্যাসি) হলো প্লেসেস এপিআই-এর একটি অংশ এবং এটি প্লেসেস এপিআই-এর সাথে একটি এপিআই কী ও কোটা শেয়ার করে।
প্লেস অটোকমপ্লিট (লেগ্যাসি) সম্পূর্ণ শব্দ এবং সাবস্ট্রিং মিলিয়ে স্থানের নাম, ঠিকানা এবং প্লাস কোড শনাক্ত করতে পারে। ফলে, ব্যবহারকারী টাইপ করার সাথে সাথেই অ্যাপ্লিকেশনগুলো কোয়েরি পাঠিয়ে তাৎক্ষণিকভাবে স্থানের পূর্বাভাস দিতে পারে।
আপনাকে অবশ্যই প্লাস কোডগুলো সঠিকভাবে ফরম্যাট করতে হবে। এর মানে হলো, আপনাকে প্লাস চিহ্নটিকে %2B তে এবং স্পেসগুলোকে %20 -তে URL-escape করতে হবে।
- গ্লোবাল কোড হলো চার অক্ষরের একটি এরিয়া কোড এবং লোকাল কোড হলো ছয় বা তার বেশি অক্ষরের। উদাহরণস্বরূপ, ইউআরএল-এস্কেপ গ্লোবাল কোড
849VCWC8+R9হলো849VCWC8%2BR9। - কম্পাউন্ড কোড হলো একটি ছয় অক্ষর বা তার বেশি দৈর্ঘ্যের স্থানীয় কোড, যার সাথে একটি সুস্পষ্ট অবস্থান যুক্ত থাকে। উদাহরণস্বরূপ, URL-এস্কেপ করা কম্পাউন্ড কোড
CWC8+R9 Mountain View, CA, USAহলোCWC8%2BR9%20Mountain%20View%20CA%20USA।
প্রাপ্ত পূর্বাভাসগুলো ব্যবহারকারীকে তার পছন্দের স্থান বেছে নিতে সাহায্য করার জন্য উপস্থাপন করা হয়। প্রাপ্ত স্থানগুলোর যেকোনোটি সম্পর্কে আরও তথ্যের জন্য আপনি একটি 'প্লেস ডিটেইলস (লেগ্যাসি)' অনুরোধ পাঠাতে পারেন।
একটি প্লেস অটোকমপ্লিট (লেগ্যাসি) অনুরোধ হলো নিম্নলিখিত ফর্মের একটি HTTP URL:
https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters
যেখানে output নিম্নলিখিত মানগুলির যেকোনো একটি হতে পারে:
-
json(প্রস্তাবিত) জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন (JSON) ফরম্যাটে আউটপুট নির্দেশ করে। -
xmlবলতে আউটপুটকে XML হিসেবে বোঝায়।
প্লেস অটোকমপ্লিট (লেগ্যাসি) অনুরোধ শুরু করার জন্য নির্দিষ্ট কিছু প্যারামিটার প্রয়োজন। ইউআরএল-এর প্রচলিত রীতি অনুযায়ী, সমস্ত প্যারামিটার অ্যামপারস্যান্ড ( & ) চিহ্ন দিয়ে আলাদা করা হয়। প্যারামিটার এবং তাদের সম্ভাব্য মানগুলির তালিকা নিচে দেওয়া হলো।
প্রয়োজনীয় প্যারামিটার
ইনপুট
যে টেক্সট স্ট্রিংটির উপর ভিত্তি করে অনুসন্ধান করা হবে। প্লেস অটোকমপ্লিট সার্ভিসটি এই স্ট্রিংটির উপর ভিত্তি করে সম্ভাব্য ম্যাচগুলো ফেরত দেবে এবং ফলাফলগুলোকে তাদের অনুভূত প্রাসঙ্গিকতা অনুসারে সাজাবে।
ঐচ্ছিক পরামিতি
উপাদান
এমন কিছু স্থানের সমষ্টি যেখানে আপনি আপনার ফলাফল সীমাবদ্ধ করতে চান। আপনি কম্পোনেন্ট ব্যবহার করে সর্বোচ্চ ৫টি দেশ দ্বারা ফিল্টার করতে পারেন। দেশগুলোকে অবশ্যই দুই অক্ষরের, ISO 3166-1 Alpha-2 সামঞ্জস্যপূর্ণ কান্ট্রি কোড হিসেবে পাস করতে হবে। উদাহরণস্বরূপ:
components=country:frআপনার ফলাফলকে ফ্রান্সের অন্তর্ভুক্ত স্থানগুলোতে সীমাবদ্ধ করবে। একাধিক দেশকে অবশ্যই একাধিকcountry:XXফিল্টার হিসেবে পাস করতে হবে, যেখানে বিভাজক হিসেবে পাইপ ক্যারেক্টার|থাকবে। উদাহরণস্বরূপ:components=country:us|country:pr|country:vi|country:gu|country:mpআপনার ফলাফলকে মার্কিন যুক্তরাষ্ট্র এবং এর অসংযুক্ত সংগঠিত অঞ্চলগুলোর অন্তর্ভুক্ত স্থানগুলোতে সীমাবদ্ধ করবে।দ্রষ্টব্য: যদি কোনো কান্ট্রি কোড দিয়ে অপ্রত্যাশিত ফলাফল পান, তবে যাচাই করে নিন যে আপনি এমন একটি কোড ব্যবহার করছেন যাতে আপনার কাঙ্ক্ষিত দেশ, অধীনস্থ অঞ্চল এবং ভৌগোলিকভাবে গুরুত্বপূর্ণ বিশেষ এলাকাগুলো অন্তর্ভুক্ত রয়েছে। আপনি উইকিপিডিয়ার 'List of ISO 3166 country codes' অথবা ISO অনলাইন ব্রাউজিং প্ল্যাটফর্মে কোড সম্পর্কিত তথ্য খুঁজে পেতে পারেন।ভাষা
যে ভাষায় ফলাফল ফেরত দেওয়া হয়।
- সমর্থিত ভাষাগুলোর তালিকা দেখুন। গুগল প্রায়শই সমর্থিত ভাষাগুলো হালনাগাদ করে, তাই এই তালিকাটি সম্পূর্ণ নাও হতে পারে।
- যদি
languageসরবরাহ করা না হয়, তাহলে API-টিAccept-Languageহেডারে নির্দিষ্ট করা পছন্দের ভাষাটি ব্যবহার করার চেষ্টা করে। - এপিআইটি ব্যবহারকারী এবং স্থানীয় বাসিন্দা উভয়ের জন্য পাঠযোগ্য একটি রাস্তার ঠিকানা প্রদান করার জন্য যথাসাধ্য চেষ্টা করে। সেই লক্ষ্য অর্জনের জন্য, এটি পছন্দের ভাষাটি অনুসরণ করে রাস্তার ঠিকানাগুলো স্থানীয় ভাষায় ফেরত দেয় এবং প্রয়োজনে ব্যবহারকারীর পাঠযোগ্য লিপিতে তা প্রতিবর্ণীকরণ করে। অন্য সব ঠিকানা পছন্দের ভাষাতেই ফেরত দেওয়া হয়। ঠিকানার সমস্ত উপাদান একই ভাষায় ফেরত দেওয়া হয়, যা প্রথম উপাদানটি থেকে বেছে নেওয়া হয়।
- পছন্দের ভাষায় কোনো নাম উপলব্ধ না থাকলে, এপিআই সবচেয়ে কাছাকাছি মিল থাকা নামটি ব্যবহার করে।
- এপিআই যে ফলাফলগুলো ফেরত দেবে এবং সেগুলো যে ক্রমে ফেরত আসবে, তার ওপর পছন্দের ভাষার সামান্য প্রভাব রয়েছে। জিওকোডার ভাষার ওপর নির্ভর করে সংক্ষিপ্ত রূপগুলোকে ভিন্নভাবে ব্যাখ্যা করে, যেমন রাস্তার প্রকারভেদের সংক্ষিপ্ত রূপ, অথবা এমন সমার্থক শব্দ যা একটি ভাষায় বৈধ হলেও অন্যটিতে নয়। উদাহরণস্বরূপ, হাঙ্গেরীয় ভাষায় 'utca' এবং 'tér' হলো রাস্তার সমার্থক শব্দ।
অবস্থান
যে বিন্দুকে কেন্দ্র করে স্থানের তথ্য সংগ্রহ করা হবে। এটিকে অবশ্যই
latitude,longitudeহিসেবে নির্দিষ্ট করতে হবে। অবস্থান নির্দিষ্ট করার সময়radiusপ্যারামিটারটিও অবশ্যই প্রদান করতে হবে। যদিradiusপ্রদান করা না হয়, তবেlocationপ্যারামিটারটি উপেক্ষা করা হয়।টেক্সট সার্চ এপিআই ব্যবহার করার সময়, যদি `query`-তে `Market in Barcelona`-এর মতো কোনো সুস্পষ্ট অবস্থান থাকে, তাহলে `location` প্যারামিটারটি ওভাররাইড হয়ে যেতে পারে।অবস্থানগত পক্ষপাত
একটি নির্দিষ্ট এলাকার ফলাফলকে অগ্রাধিকার দিতে, হয় একটি ব্যাসার্ধ ও অক্ষাংশ/দ্রাঘিমাংশ, অথবা একটি আয়তক্ষেত্রের বিন্দুগুলিকে প্রতিনিধিত্বকারী দুটি অক্ষাংশ/দ্রাঘিমাংশ জোড়া উল্লেখ করুন। যদি এই প্যারামিটারটি উল্লেখ না করা হয়, তাহলে API ডিফল্টরূপে আইপি অ্যাড্রেস বায়াসিং ব্যবহার করে।
- আইপি বায়াস: এপিআই-কে আইপি অ্যাড্রেস বায়াসিং ব্যবহার করার নির্দেশ দেয়।
ipbiasস্ট্রিংটি পাস করুন (এই অপশনটির কোনো অতিরিক্ত প্যারামিটার নেই)। - বৃত্তাকার: একটি স্ট্রিং যা মিটারে ব্যাসার্ধ এবং দশমিক ডিগ্রিতে অক্ষাংশ/দ্রাঘিমাংশ উল্লেখ করে। নিম্নলিখিত বিন্যাসটি ব্যবহার করুন:
circle:radius@lat,lng। - আয়তক্ষেত্রাকার: একটি স্ট্রিং যা দশমিক ডিগ্রিতে দুটি অক্ষাংশ/দ্রাঘিমাংশ জোড়া নির্দিষ্ট করে, যা একটি আয়তক্ষেত্রের দক্ষিণ/পশ্চিম এবং উত্তর/পূর্ব বিন্দুকে প্রতিনিধিত্ব করে। নিম্নলিখিত বিন্যাসটি ব্যবহার করুন:
rectangle:south,west|north,east। উল্লেখ্য যে, পূর্ব/পশ্চিম মানগুলি -180, 180 পরিসরের মধ্যে আবদ্ধ থাকে এবং উত্তর/দক্ষিণ মানগুলি -90, 90 পরিসরের মধ্যে সীমাবদ্ধ থাকে।
- আইপি বায়াস: এপিআই-কে আইপি অ্যাড্রেস বায়াসিং ব্যবহার করার নির্দেশ দেয়।
অবস্থান সীমাবদ্ধতা
একটি ব্যাসার্ধ ও অক্ষাংশ/দ্রাঘিমাংশ, অথবা একটি আয়তক্ষেত্রের বিন্দুগুলোকে প্রতিনিধিত্বকারী দুটি অক্ষাংশ/দ্রাঘিমাংশ জোড়া উল্লেখ করে ফলাফলকে একটি নির্দিষ্ট এলাকায় সীমাবদ্ধ করুন।
- বৃত্তাকার: একটি স্ট্রিং যা মিটারে ব্যাসার্ধ এবং দশমিক ডিগ্রিতে অক্ষাংশ/দ্রাঘিমাংশ উল্লেখ করে। নিম্নলিখিত বিন্যাসটি ব্যবহার করুন:
circle:radius@lat,lng। - আয়তক্ষেত্রাকার: একটি স্ট্রিং যা দশমিক ডিগ্রিতে দুটি অক্ষাংশ/দ্রাঘিমাংশ জোড়া নির্দিষ্ট করে, যা একটি আয়তক্ষেত্রের দক্ষিণ/পশ্চিম এবং উত্তর/পূর্ব বিন্দুকে প্রতিনিধিত্ব করে। নিম্নলিখিত বিন্যাসটি ব্যবহার করুন:
rectangle:south,west|north,east। উল্লেখ্য যে, পূর্ব/পশ্চিম মানগুলি -180, 180 পরিসরের মধ্যে আবদ্ধ থাকে এবং উত্তর/দক্ষিণ মানগুলি -90, 90 পরিসরের মধ্যে সীমাবদ্ধ থাকে।
- বৃত্তাকার: একটি স্ট্রিং যা মিটারে ব্যাসার্ধ এবং দশমিক ডিগ্রিতে অক্ষাংশ/দ্রাঘিমাংশ উল্লেখ করে। নিম্নলিখিত বিন্যাসটি ব্যবহার করুন:
অফসেট
ইনপুট টার্মের মধ্যে থাকা শেষ অক্ষরের অবস্থান, যা সার্ভিসটি প্রেডিকশন মেলানোর জন্য ব্যবহার করে। উদাহরণস্বরূপ, যদি ইনপুটটি
Googleহয় এবং অফসেট ৩ হয়, তাহলে সার্ভিসটিGooএর সাথে মেলাবে। অফসেট দ্বারা নির্ধারিত স্ট্রিংটি শুধুমাত্র ইনপুট টার্মের প্রথম শব্দের সাথে মেলানো হয়। উদাহরণস্বরূপ, যদি ইনপুট টার্মটিGoogle abcহয় এবং অফসেট ৩ হয়, তাহলে সার্ভিসটিGoo abcসাথে মেলানোর চেষ্টা করবে। যদি কোনো অফসেট সরবরাহ করা না হয়, তাহলে সার্ভিসটি সম্পূর্ণ টার্মটি ব্যবহার করবে। অফসেটটি সাধারণত টেক্সট ক্যারেটের অবস্থানে সেট করা উচিত।উৎপত্তি
যে উৎস বিন্দু থেকে গন্তব্যে সরলরৈখিক দূরত্ব গণনা করা হবে (যা
distance_metersহিসেবে ফেরত দেওয়া হয়)। এই মানটি বাদ দিলে, সরলরৈখিক দূরত্ব ফেরত দেওয়া হবে না। এটি অবশ্যইlatitude,longitudeহিসেবে উল্লেখ করতে হবে।ব্যাসার্ধ
স্থান সম্পর্কিত ফলাফল প্রদর্শনের জন্য দূরত্ব (মিটারে) নির্ধারণ করে। আপনি একটি
locationএবং একটিradiusপ্যারামিটার পাস করে ফলাফলকে একটি নির্দিষ্ট বৃত্তের মধ্যে সীমাবদ্ধ রাখতে পারেন। এটি করলে প্লেসেস সার্ভিসকে সেই বৃত্তের মধ্যে ফলাফল দেখাতে অগ্রাধিকার দেওয়ার নির্দেশ দেওয়া হয়; নির্ধারিত এলাকার বাইরের ফলাফলও প্রদর্শিত হতে পারে।অনুসন্ধানের ধরন এবং অন্যান্য প্যারামিটারের উপর নির্ভর করে ব্যাসার্ধটি স্বয়ংক্রিয়ভাবে একটি সর্বোচ্চ মানে সীমাবদ্ধ থাকবে।
- স্বয়ংক্রিয় পূরণ: ৫০,০০০ মিটার
- কাছাকাছি অনুসন্ধান:
-
keywordবাnameসহ: ৫০,০০০ মিটার -
keywordবাnameছাড়া- ৫০,০০০ মিটার পর্যন্ত, যা
rankbyপ্যারামিটার নির্বিশেষে, এলাকার ঘনত্বের উপর ভিত্তি করে গতিশীলভাবে সমন্বয় করা হয়। -
rankby=distanceব্যবহার করার সময়, radius প্যারামিটারটি গৃহীত হবে না এবং এর ফলে একটিINVALID_REQUESTদেখা দেবে।
- ৫০,০০০ মিটার পর্যন্ত, যা
-
- কোয়েরি অটোকমপ্লিট: ৫০,০০০ মিটার
- পাঠ্য অনুসন্ধান: ৫০,০০০ মিটার
অঞ্চল
অঞ্চল কোডটি একটি ccTLD ("টপ-লেভেল ডোমেইন") দুই-অক্ষরের মান হিসাবে নির্দিষ্ট করা হয়। কিছু উল্লেখযোগ্য ব্যতিক্রম ছাড়া, বেশিরভাগ ccTLD কোড ISO 3166-1 কোডের অনুরূপ। উদাহরণস্বরূপ, যুক্তরাজ্যের ccTLD হলো "uk" (.co.uk), যেখানে এর ISO 3166-1 কোড হলো "gb" (যা প্রযুক্তিগতভাবে "দ্য ইউনাইটেড কিংডম অফ গ্রেট ব্রিটেন অ্যান্ড নর্দার্ন আয়ারল্যান্ড" সত্তাটির জন্য ব্যবহৃত হয়)।
সেশনটোকেন
একটি এলোমেলো স্ট্রিং যা বিলিংয়ের উদ্দেশ্যে একটি অটোকমপ্লিট সেশনকে শনাক্ত করে।
ব্যবহারকারী যখন কোনো কোয়েরি টাইপ করা শুরু করেন, তখন সেশনটি শুরু হয় এবং যখন তিনি একটি স্থান নির্বাচন করে 'প্লেস ডিটেইলস'-এ কল করেন, তখন এটি শেষ হয়। প্রতিটি সেশনে একাধিক কোয়েরি থাকতে পারে, যার পরে একটি স্থান নির্বাচন করতে হয়। একটি সেশনের মধ্যে প্রতিটি অনুরোধের জন্য ব্যবহৃত এপিআই কী (API key) অবশ্যই একই গুগল ক্লাউড কনসোল প্রজেক্টের অন্তর্ভুক্ত হতে হবে। একবার একটি সেশন শেষ হয়ে গেলে, টোকেনটি আর বৈধ থাকে না; আপনার অ্যাপকে প্রতিটি সেশনের জন্য একটি নতুন টোকেন তৈরি করতে হবে। যদি
sessiontokenপ্যারামিটারটি বাদ দেওয়া হয়, অথবা যদি আপনি একটি সেশন টোকেন পুনরায় ব্যবহার করেন, তাহলে সেশনটির জন্য এমনভাবে চার্জ করা হবে যেন কোনো সেশন টোকেন প্রদান করা হয়নি (প্রতিটি অনুরোধের জন্য আলাদাভাবে বিল করা হয়)।আমরা নিম্নলিখিত নির্দেশিকাগুলো সুপারিশ করছি:
- সমস্ত অটোকমপ্লিট সেশনের জন্য সেশন টোকেন ব্যবহার করুন।
- প্রতিটি সেশনের জন্য একটি নতুন টোকেন তৈরি করুন। ভার্সন ৪ UUID ব্যবহার করার পরামর্শ দেওয়া হয়।
- নিশ্চিত করুন যে একটি সেশনের মধ্যে সমস্ত 'Place Autocomplete' এবং 'Place Details' অনুরোধের জন্য ব্যবহৃত API কী(গুলি) একই ক্লাউড কনসোল প্রজেক্টের অন্তর্গত।
- প্রতিটি নতুন সেশনের জন্য একটি অনন্য সেশন টোকেন প্রদান করতে ভুলবেন না। একাধিক সেশনের জন্য একই টোকেন ব্যবহার করলে প্রতিটি অনুরোধের জন্য আলাদাভাবে বিল করা হবে।
কঠোর সীমানা
শুধুমাত্র সেই স্থানগুলোই ফেরত দেওয়া হয় যা
locationএবংradiusদ্বারা সংজ্ঞায়িত অঞ্চলের মধ্যে কঠোরভাবে অবস্থিত। এটি একটি সীমাবদ্ধতা, কোনো পক্ষপাতিত্ব নয়; এর অর্থ হলো, ব্যবহারকারীর দেওয়া তথ্যের সাথে মিলে গেলেও এই অঞ্চলের বাইরের ফলাফলগুলো ফেরত দেওয়া হবে না।প্রকার
typesপ্যারামিটারটি পাস করে আপনি একটি `Place Autocomplete` অনুরোধের ফলাফলকে একটি নির্দিষ্ট ধরণের মধ্যে সীমাবদ্ধ করতে পারেন। এই প্যারামিটারটি `Place Types`- এ তালিকাভুক্ত একটি টাইপ বা টাইপের সংগ্রহ নির্দিষ্ট করে। যদি কিছু নির্দিষ্ট না করা হয়, তবে সমস্ত টাইপ ফেরত দেওয়া হয়।একটি স্থানের শুধুমাত্র একটি প্রাথমিক ধরন থাকতে পারে, যা সারণি ১ বা সারণি ২- এ তালিকাভুক্ত ধরনগুলো থেকে নেওয়া। উদাহরণস্বরূপ, একটি হোটেল যেখানে খাবার পরিবেশন করা হয়, তা শুধুমাত্র
types=lodgingদিয়ে পাওয়া যেতে পারে,types=restaurantদিয়ে নয়।typesপ্যারামিটারের মানের জন্য আপনি নিম্নলিখিতগুলির মধ্যে যেকোনো একটি নির্দিষ্ট করতে পারেন:সারণি ১ বা সারণি ২ থেকে সর্বোচ্চ পাঁচটি মান। একাধিক মানের ক্ষেত্রে, প্রতিটি মানকে একটি
|(উল্লম্ব বার) দিয়ে আলাদা করুন। উদাহরণস্বরূপ:types=book_store|cafeসারণি ৩- এ থাকা যেকোনো একটি সমর্থিত ফিল্টার। আপনি বিভিন্ন ধরনের কালেকশন একসাথে ব্যবহার করতে পারবেন না।
নিম্নলিখিত ক্ষেত্রে অনুরোধটি
INVALID_REQUESTত্রুটির সাথে প্রত্যাখ্যাত হবে:
স্থান স্বয়ংসম্পূর্ণ (পুরানো) উদাহরণ
ক্যালিফোর্নিয়ার সান ফ্রান্সিসকোকে কেন্দ্র করে একটি এলাকার মধ্যে 'অ্যামিবা' শব্দটি ধারণকারী প্রতিষ্ঠানগুলির জন্য একটি অনুরোধ:
ইউআরএল
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 কী-টি আপনাকে আপনার নিজের কী দিয়ে প্রতিস্থাপন করতে হবে।
স্বয়ংক্রিয় সম্পূর্ণতা (পুরানো) প্রতিক্রিয়া স্থাপন করুন
প্লেস অটোকমপ্লিট (লেগ্যাসি) প্রতিক্রিয়াগুলি অনুরোধের 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 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>
স্থানগুলি স্বয়ংক্রিয় প্রতিক্রিয়া
| মাঠ | প্রয়োজনীয় | প্রকার | বর্ণনা |
|---|---|---|---|
| প্রয়োজনীয় | অ্যারে< PlaceAutocompletePrediction > | এতে একাধিক পূর্বাভাস রয়েছে। আরও তথ্যের জন্য PlaceAutocompletePrediction দেখুন। |
| প্রয়োজনীয় | স্থানগুলি স্বয়ংক্রিয়ভাবে সম্পূর্ণ হওয়ার অবস্থা | এতে অনুরোধের অবস্থা থাকে এবং অনুরোধটি কেন ব্যর্থ হয়েছে তা খুঁজে বের করতে সাহায্য করার জন্য ডিবাগিং তথ্যও থাকতে পারে। আরও তথ্যের জন্য PlacesAutocompleteStatus দেখুন। |
| ঐচ্ছিক | স্ট্রিং | যখন পরিষেবাটি |
| ঐচ্ছিক | অ্যারে<স্ট্রিং> | যখন পরিষেবাটি অনুরোধের বিবরণ সম্পর্কে অতিরিক্ত তথ্য ফেরত দেয়, তখন রেসপন্স অবজেক্টের মধ্যে একটি অতিরিক্ত |
ফলাফলের মধ্যে place_id উপাদানগুলো বিশেষভাবে উল্লেখযোগ্য, যা একটি পৃথক কোয়েরি ব্যবহার করে স্থানটি সম্পর্কে আরও সুনির্দিষ্ট বিবরণ জানতে অনুরোধ করার জন্য ব্যবহার করা যেতে পারে। Place Details (Legacy) requests দেখুন।
একটি XML রেসপন্স একটিমাত্র <AutocompletionResponse> এলিমেন্ট এবং তার দুই ধরনের চাইল্ড এলিমেন্ট নিয়ে গঠিত:
- একটিমাত্র
<status>এলিমেন্টে অনুরোধ সম্পর্কিত মেটাডেটা থাকে। নিচে স্ট্যাটাস কোডগুলো দেখুন। - শূন্য বা তার বেশি
<prediction>এলিমেন্ট, যার প্রতিটিতে একটিমাত্র স্থান সম্পর্কে তথ্য থাকে। এই ফলাফলগুলো সম্পর্কে তথ্যের জন্য Place Autocomplete (Legacy) Results দেখুন। Places API সর্বোচ্চ ৫টি ফলাফল ফেরত দেয়।
আপনার অ্যাপ্লিকেশনে কোনো কারণে xml প্রয়োজন না হলে, আমরা আপনাকে পছন্দের আউটপুট ফ্ল্যাগ হিসেবে json ব্যবহার করার পরামর্শ দিই। XML ট্রি প্রসেস করার ক্ষেত্রে কিছু সতর্কতা অবলম্বন করা প্রয়োজন, যাতে আপনি সঠিক নোড এবং এলিমেন্ট রেফারেন্স করেন। XML প্রসেস করার বিষয়ে সাহায্যের জন্য 'Processing XML with XPath' দেখুন।
স্থানগুলি স্বয়ংক্রিয়ভাবে সম্পূর্ণ হওয়ার অবস্থা
পরিষেবা দ্বারা ফেরত দেওয়া স্ট্যাটাস কোড।
-
OKনির্দেশ করে যে এপিআই অনুরোধটি সফল হয়েছে। -
ZERO_RESULTSনির্দেশ করে যে অনুসন্ধান সফল হয়েছে কিন্তু কোনো ফলাফল পাওয়া যায়নি। এটি ঘটতে পারে যদি অনুসন্ধানের জন্য কোনো দূরবর্তী স্থানের সীমানা নির্ধারণ করে দেওয়া হয়। -
INVALID_REQUESTনির্দেশ করে যে এপিআই অনুরোধটি ত্রুটিপূর্ণ ছিল, যা সাধারণতinputপ্যারামিটার অনুপস্থিত থাকার কারণে ঘটে থাকে। -
OVER_QUERY_LIMITনিম্নলিখিত যেকোনো একটি নির্দেশ করে:- আপনি QPS সীমা অতিক্রম করেছেন।
- আপনার অ্যাকাউন্টে বিলিং চালু করা হয়নি।
- মাসিক ২০০ ডলারের ক্রেডিট, বা স্বেচ্ছায় নির্ধারিত ব্যবহারের সীমা, অতিক্রম করা হয়েছে।
- প্রদত্ত অর্থপ্রদানের পদ্ধতিটি আর বৈধ নয় (উদাহরণস্বরূপ, ক্রেডিট কার্ডের মেয়াদ শেষ হয়ে গেছে)।
-
REQUEST_DENIEDনির্দেশ করে যে আপনার অনুরোধটি প্রত্যাখ্যান করা হয়েছে, সাধারণত নিম্নলিখিত কারণে:- অনুরোধটিতে একটি এপিআই কী নেই।
-
keyপ্যারামিটারটি অবৈধ।
-
UNKNOWN_ERRORএকটি অজানা ত্রুটি নির্দেশ করে।
প্লেসেস সার্ভিস যখন কোনো সার্চ থেকে JSON রেজাল্ট রিটার্ন করে, তখন সেগুলোকে একটি predictions অ্যারের মধ্যে রাখে। সার্ভিসটি কোনো রেজাল্ট রিটার্ন না করলেও (যেমন location প্রত্যন্ত হলে) এটি একটি খালি predictions অ্যারে রিটার্ন করে। XML রেসপন্সগুলোতে শূন্য বা তার বেশি সংখ্যক <prediction> এলিমেন্ট থাকে।
PlaceAutocompletePrediction
| মাঠ | প্রয়োজনীয় | প্রকার | বর্ণনা |
|---|---|---|---|
| প্রয়োজনীয় | স্ট্রিং | ফেরত আসা ফলাফলের জন্য এতে মানুষের পাঠযোগ্য নাম থাকে। |
| প্রয়োজনীয় | অ্যারে< PlaceAutocompleteMatchedSubstring > | সাবস্ট্রিংগুলির একটি তালিকা যা ভবিষ্যদ্বাণীর ফলাফলের টেক্সটে প্রবেশ করানো টার্মটির অবস্থান বর্ণনা করে, যাতে টার্মটি নির্বাচিত হলে হাইলাইট করা যায়। আরও তথ্যের জন্য PlaceAutocompleteMatchedSubstring দেখুন। |
| প্রয়োজনীয় | PlaceAutocompleteStructured Format | পূর্ব-ফরম্যাট করা টেক্সট প্রদান করে যা আপনার অটোকমপ্লিট ফলাফলে দেখানো যেতে পারে। এই কন্টেন্টটি হুবহু পড়ার জন্য। প্রোগ্রামগতভাবে ফরম্যাট করা ঠিকানাটি পার্স করবেন না। আরও তথ্যের জন্য PlaceAutocompleteStructuredFormat দেখুন। |
| প্রয়োজনীয় | অ্যারে< PlaceAutocompleteTerm > | ফেরত আসা বিবরণের প্রতিটি অংশকে শনাক্তকারী পদগুলোর একটি অ্যারে এতে থাকে (বিবরণের একটি অংশ সাধারণত একটি কমা দিয়ে শেষ হয়)। অ্যারের প্রতিটি এন্ট্রিতে একটি আরও তথ্যের জন্য PlaceAutocompleteTerm দেখুন। |
| ঐচ্ছিক | পূর্ণসংখ্যা | মূলবিন্দু থেকে সরলরৈখিক দূরত্ব মিটারে। এই ক্ষেত্রটি শুধুমাত্র |
| ঐচ্ছিক | স্ট্রিং | একটি পাঠ্য শনাক্তকারী যা একটি স্থানকে অনন্যভাবে চিহ্নিত করে। স্থানটি সম্পর্কে তথ্য পেতে, একটি প্লেসেস এপিআই (Places API) অনুরোধের placeId ফিল্ডে এই শনাক্তকারীটি পাস করুন। প্লেস আইডি সম্পর্কে আরও তথ্যের জন্য, প্লেস আইডি ওভারভিউ দেখুন। |
| ঐচ্ছিক | স্ট্রিং | স্থান_আইডি দেখুন। |
| ঐচ্ছিক | অ্যারে<স্ট্রিং> | এই স্থানের জন্য প্রযোজ্য প্রকারগুলির একটি অ্যারে এতে রয়েছে। উদাহরণস্বরূপ: |
PlaceAutocompleteMatchedSubstring
| মাঠ | প্রয়োজনীয় | প্রকার | বর্ণনা |
|---|---|---|---|
| প্রয়োজনীয় | সংখ্যা | পূর্বাভাসের ফলাফলের টেক্সটে মিলে যাওয়া সাবস্ট্রিংটির দৈর্ঘ্য। |
| প্রয়োজনীয় | সংখ্যা | পূর্বাভাসের ফলাফলের টেক্সটে মিলে যাওয়া সাবস্ট্রিংটির শুরুর অবস্থান। |
PlaceAutocompleteStructured Format
| মাঠ | প্রয়োজনীয় | প্রকার | বর্ণনা |
|---|---|---|---|
| প্রয়োজনীয় | স্ট্রিং | এতে ভবিষ্যদ্বাণীর মূল অংশটি থাকে, সাধারণত স্থানটির নাম। |
| প্রয়োজনীয় | অ্যারে< PlaceAutocompleteMatchedSubstring > | এতে আরও তথ্যের জন্য PlaceAutocompleteMatchedSubstring দেখুন। |
| ঐচ্ছিক | স্ট্রিং | এতে কোনো ভবিষ্যদ্বাণীর সহায়ক পাঠ্য থাকে, সাধারণত স্থানটির অবস্থান। |
| ঐচ্ছিক | অ্যারে< PlaceAutocompleteMatchedSubstring > | এতে আরও তথ্যের জন্য PlaceAutocompleteMatchedSubstring দেখুন। |
PlaceAutocompleteTerm
| মাঠ | প্রয়োজনীয় | প্রকার | বর্ণনা |
|---|---|---|---|
| প্রয়োজনীয় | সংখ্যা | বর্ণনায় এই পদটির শুরুর অবস্থান নির্ধারণ করে, যা ইউনিকোড অক্ষরে পরিমাপ করা হয়। |
| প্রয়োজনীয় | স্ট্রিং | পরিভাষাটির পাঠ্য। |
স্থান স্বয়ংসম্পূর্ণতা (লেগ্যাসি) অপ্টিমাইজেশন
এই বিভাগে প্লেস অটোকমপ্লিট (লেগ্যাসি) পরিষেবাটির সর্বোত্তম ব্যবহার নিশ্চিত করার জন্য সেরা অনুশীলনগুলো বর্ণনা করা হয়েছে।
এখানে কিছু সাধারণ নির্দেশিকা দেওয়া হলো:
- একটি কার্যকরী ইউজার ইন্টারফেস তৈরি করার সবচেয়ে দ্রুত উপায় হলো Maps JavaScript API Place Autocomplete (Legacy) উইজেট , Places SDK for Android Place Autocomplete (Legacy) উইজেট , অথবা Places SDK for iOS Place Autocomplete (Legacy) UI কন্ট্রোল ব্যবহার করা।
- শুরু থেকেই প্লেস অটোকমপ্লিট (লেগ্যাসি)-এর অপরিহার্য ডেটা ফিল্ডগুলো বুঝুন।
- অবস্থান পক্ষপাত এবং অবস্থান সীমাবদ্ধতা ক্ষেত্রগুলি ঐচ্ছিক, কিন্তু অটোকমপ্লিট পারফরম্যান্সের উপর এগুলির উল্লেখযোগ্য প্রভাব থাকতে পারে।
- এপিআই কোনো ত্রুটি ফেরত দিলে আপনার অ্যাপটি যেন সুষ্ঠুভাবে তার কার্যক্ষমতা হারায়, তা নিশ্চিত করতে এরর হ্যান্ডলিং ব্যবহার করুন।
- নিশ্চিত করুন যে, কোনো বিকল্প না থাকলে আপনার অ্যাপটি তা সামলে নেয় এবং ব্যবহারকারীদের চালিয়ে যাওয়ার একটি উপায় প্রদান করে।
ব্যয় অপ্টিমাইজেশনের সর্বোত্তম অনুশীলন
মৌলিক ব্যয় অপ্টিমাইজেশন
Place Autocomplete (Legacy) পরিষেবা ব্যবহারের খরচ অপ্টিমাইজ করতে, Place Details (Legacy) এবং Place Autocomplete (Legacy) উইজেটগুলিতে ফিল্ড মাস্ক ব্যবহার করুন, যাতে শুধুমাত্র আপনার প্রয়োজনীয় Place Autocomplete (Legacy) ডেটা ফিল্ডগুলিই ফেরত আসে।
উন্নত ব্যয় অপ্টিমাইজেশন
SKU: Autocomplete - Per Request প্রাইসিং অ্যাক্সেস করতে এবং Place Details (Legacy)-এর পরিবর্তে নির্বাচিত স্থান সম্পর্কে Geocoding API-এর ফলাফল অনুরোধ করতে Place Autocomplete (Legacy)-এর প্রোগ্রাম্যাটিক বাস্তবায়ন বিবেচনা করুন। যদি নিম্নলিখিত উভয় শর্তই পূরণ হয়, তবে Geocoding API-এর সাথে যুক্ত প্রতি-অনুরোধ প্রাইসিং, প্রতি-সেশন (সেশন-ভিত্তিক) প্রাইসিং-এর চেয়ে বেশি সাশ্রয়ী হয়:
- ব্যবহারকারীর নির্বাচিত স্থানের শুধু অক্ষাংশ/দ্রাঘিমাংশ বা ঠিকানার প্রয়োজন হলে, জিওকোডিং এপিআই একটি প্লেস ডিটেইলস (লেগ্যাসি) কলের চেয়ে কম খরচে এই তথ্য সরবরাহ করে।
- যদি ব্যবহারকারীরা গড়ে চারটি বা তার কম প্লেস অটোকমপ্লিট (লেগ্যাসি) প্রেডিকশন অনুরোধের মধ্যে একটি অটোকমপ্লিট প্রেডিকশন নির্বাচন করেন, তাহলে প্রতি-সেশন মূল্যের চেয়ে প্রতি-অনুরোধ মূল্য নির্ধারণ বেশি সাশ্রয়ী হতে পারে।
আপনার অ্যাপ্লিকেশনের জন্য কি নির্বাচিত পূর্বাভাসের ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশ ছাড়া অন্য কোনো তথ্যের প্রয়োজন আছে?
হ্যাঁ, আরও বিস্তারিত তথ্যের প্রয়োজন।
প্লেস ডিটেইলস (লেগ্যাসি)-এর সাথে সেশন-ভিত্তিক প্লেস অটোকমপ্লিট (লেগ্যাসি) ব্যবহার করুন।
যেহেতু আপনার অ্যাপ্লিকেশনের জন্য স্থানের বিবরণ (লেগ্যাসি), যেমন স্থানের নাম, ব্যবসার অবস্থা, বা খোলার সময় প্রয়োজন, তাই আপনার প্লেস অটোকমপ্লিট (লেগ্যাসি) বাস্তবায়নে প্রতি সেশনের জন্য একটি সেশন টোকেন ( প্রোগ্রাম্যাটিকভাবে অথবা জাভাস্ক্রিপ্ট , অ্যান্ড্রয়েড বা আইওএস উইজেটে বিল্ট-ইন) এবং আপনি কোন স্থানের ডেটা ফিল্ড অনুরোধ করছেন তার উপর নির্ভর করে প্রযোজ্য প্লেস ডেটা SKU ব্যবহার করা উচিত ।
উইজেট বাস্তবায়ন
জাভাস্ক্রিপ্ট , অ্যান্ড্রয়েড বা আইওএস উইজেটগুলিতে সেশন ম্যানেজমেন্ট স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত থাকে। এর মধ্যে নির্বাচিত প্রেডিকশনের প্লেস অটোকমপ্লিট (লেগ্যাসি) রিকোয়েস্ট এবং প্লেস ডিটেইলস (লেগ্যাসি) রিকোয়েস্ট উভয়ই অন্তর্ভুক্ত। আপনি যেন শুধুমাত্র আপনার প্রয়োজনীয় প্লেস অটোকমপ্লিট (লেগ্যাসি) ডেটা ফিল্ডগুলির জন্যই রিকোয়েস্ট করেন, তা নিশ্চিত করতে fields প্যারামিটারটি নির্দিষ্ট করে দিন।
প্রোগ্রাম্যাটিক বাস্তবায়ন
আপনার প্লেস অটোকমপ্লিট (লেগ্যাসি) অনুরোধের সাথে একটি সেশন টোকেন ব্যবহার করুন। নির্বাচিত প্রেডিকশন সম্পর্কে প্লেস ডিটেইলস (লেগ্যাসি) অনুরোধ করার সময়, নিম্নলিখিত প্যারামিটারগুলি অন্তর্ভুক্ত করুন:
- Place Autocomplete (Legacy) প্রতিক্রিয়া থেকে প্রাপ্ত স্থানের আইডি
- প্লেস অটোকমপ্লিট (লেগ্যাসি) অনুরোধে ব্যবহৃত সেশন টোকেন
-
fieldsপ্যারামিটারটি আপনার প্রয়োজনীয় প্লেস অটোকমপ্লিট (লেগ্যাসি) ডেটা ফিল্ডগুলি নির্দিষ্ট করে।
না, শুধু ঠিকানা ও অবস্থান প্রয়োজন।
আপনার অ্যাপ্লিকেশনের জন্য প্লেস অটোকমপ্লিট (লেগ্যাসি) ব্যবহারের পারফরম্যান্সের উপর নির্ভর করে, জিওকোডিং এপিআই প্লেস ডিটেইলস (লেগ্যাসি)-এর চেয়ে বেশি সাশ্রয়ী বিকল্প হতে পারে। প্রতিটি অ্যাপ্লিকেশনের প্লেস অটোকমপ্লিট (লেগ্যাসি)-এর কার্যকারিতা নির্ভর করে ব্যবহারকারীরা কী তথ্য প্রবেশ করাচ্ছেন, অ্যাপ্লিকেশনটি কোথায় ব্যবহার করা হচ্ছে এবং পারফরম্যান্স অপ্টিমাইজেশনের সেরা অনুশীলনগুলো প্রয়োগ করা হয়েছে কিনা তার উপর।
নিম্নলিখিত প্রশ্নের উত্তর দেওয়ার জন্য, আপনার অ্যাপ্লিকেশনে একটি প্লেস অটোকমপ্লিট (লেগ্যাসি) প্রেডিকশন নির্বাচন করার আগে একজন ব্যবহারকারী গড়ে কতগুলি অক্ষর টাইপ করেন তা বিশ্লেষণ করুন।
আপনার ব্যবহারকারীরা কি গড়ে চার বা তার কম অনুরোধে একটি প্লেস অটোকমপ্লিট (লেগ্যাসি) প্রেডিকশন নির্বাচন করেন?
হ্যাঁ
সেশন টোকেন ছাড়াই প্রোগ্রাম্যাটিকভাবে প্লেস অটোকমপ্লিট (লেগ্যাসি) প্রয়োগ করুন এবং নির্বাচিত স্থানের পূর্বাভাসের উপর জিওকোডিং এপিআই কল করুন।
জিওকোডিং এপিআই ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশের স্থানাঙ্ক সরবরাহ করে। চারটি অটোকমপ্লিট - পার রিকোয়েস্ট অনুরোধ এবং নির্বাচিত স্থানের পূর্বাভাস সম্পর্কে একটি জিওকোডিং এপিআই কল করার খরচ, প্রতি সেশনের প্লেস অটোকমপ্লিট (লেগ্যাসি) খরচের চেয়ে কম ।
আপনার ব্যবহারকারীদের আরও কম অক্ষরের মধ্যে তাদের কাঙ্ক্ষিত পূর্বাভাস পেতে সাহায্য করার জন্য পারফরম্যান্সের সেরা অনুশীলনগুলো প্রয়োগ করার কথা বিবেচনা করুন।
না
প্লেস ডিটেইলস (লেগ্যাসি)-এর সাথে সেশন-ভিত্তিক প্লেস অটোকমপ্লিট (লেগ্যাসি) ব্যবহার করুন।
যেহেতু একজন ব্যবহারকারী একটি প্লেস অটোকমপ্লিট (লেগ্যাসি) প্রেডিকশন নির্বাচন করার আগে আপনার প্রত্যাশিত গড় অনুরোধের সংখ্যা প্রতি-সেশন মূল্যের খরচকে ছাড়িয়ে যায়, তাই আপনার প্লেস অটোকমপ্লিট (লেগ্যাসি) বাস্তবায়নে প্রতি সেশনে প্লেস অটোকমপ্লিট (লেগ্যাসি) অনুরোধ এবং সংশ্লিষ্ট প্লেস ডিটেইলস (লেগ্যাসি) অনুরোধ উভয়ের জন্যই একটি সেশন টোকেন ব্যবহার করা উচিত ।
উইজেট বাস্তবায়ন
জাভাস্ক্রিপ্ট , অ্যান্ড্রয়েড বা আইওএস উইজেটগুলিতে সেশন ম্যানেজমেন্ট স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত থাকে। এর মধ্যে নির্বাচিত প্রেডিকশনের প্লেস অটোকমপ্লিট (লেগ্যাসি) রিকোয়েস্ট এবং প্লেস ডিটেইলস (লেগ্যাসি) রিকোয়েস্ট উভয়ই অন্তর্ভুক্ত। আপনি যেন শুধুমাত্র আপনার প্রয়োজনীয় ফিল্ডগুলোর জন্যই রিকোয়েস্ট করেন, তা নিশ্চিত করতে fields প্যারামিটারটি নির্দিষ্ট করে দিন।
প্রোগ্রাম্যাটিক বাস্তবায়ন
আপনার প্লেস অটোকমপ্লিট (লেগ্যাসি) অনুরোধের সাথে একটি সেশন টোকেন ব্যবহার করুন। নির্বাচিত প্রেডিকশন সম্পর্কে প্লেস ডিটেইলস (লেগ্যাসি) অনুরোধ করার সময়, নিম্নলিখিত প্যারামিটারগুলি অন্তর্ভুক্ত করুন:
- Place Autocomplete (Legacy) প্রতিক্রিয়া থেকে প্রাপ্ত স্থানের আইডি
- প্লেস অটোকমপ্লিট (লেগ্যাসি) অনুরোধে ব্যবহৃত সেশন টোকেন
-
fieldsপ্যারামিটারটি ঠিকানা এবং জ্যামিতির মতো মৌলিক ডেটা ক্ষেত্রগুলি নির্দিষ্ট করে।
Place Autocomplete (Legacy) অনুরোধগুলি বিলম্বিত করার কথা বিবেচনা করুন।
আপনি এমন কৌশল অবলম্বন করতে পারেন, যেমন ব্যবহারকারী প্রথম তিন বা চারটি অক্ষর টাইপ না করা পর্যন্ত একটি প্লেস অটোকমপ্লিট (লেগ্যাসি) অনুরোধ বিলম্বিত করা, যাতে আপনার অ্যাপ্লিকেশনটি কম অনুরোধ করে। উদাহরণস্বরূপ, ব্যবহারকারী তৃতীয় অক্ষরটি টাইপ করার পর প্রতিটি অক্ষরের জন্য প্লেস অটোকমপ্লিট (লেগ্যাসি) অনুরোধ করার অর্থ হলো, যদি ব্যবহারকারী সাতটি অক্ষর টাইপ করার পর এমন একটি প্রেডিকশন নির্বাচন করে যার জন্য আপনি একটি জিওকোডিং এপিআই অনুরোধ করেন, তাহলে মোট খরচ হবে প্রতি অনুরোধে ৪টি প্লেস অটোকমপ্লিট (লেগ্যাসি) + জিওকোডিং ।
যদি অনুরোধ বিলম্বিত করার মাধ্যমে আপনার গড় প্রোগ্রাম্যাটিক অনুরোধের সংখ্যা চারের নিচে নামিয়ে আনা যায়, তাহলে আপনি জিওকোডিং এপিআই ইমপ্লিমেন্টেশন সহ পারফরম্যান্ট প্লেস অটোকমপ্লিট (লেগ্যাসি) -এর নির্দেশিকা অনুসরণ করতে পারেন। মনে রাখবেন যে, অনুরোধ বিলম্বিত করাকে ব্যবহারকারী লেটেন্সি হিসেবে উপলব্ধি করতে পারেন, কারণ তিনি প্রতিটি নতুন কীস্ট্রোকের সাথে প্রেডিকশন দেখার প্রত্যাশা করতে পারেন।
আপনার ব্যবহারকারীরা যাতে কম অক্ষরের মধ্যে তাদের কাঙ্ক্ষিত পূর্বাভাস পেতে পারেন, সেজন্য পারফরম্যান্সের সর্বোত্তম অনুশীলনগুলো প্রয়োগ করার কথা বিবেচনা করুন।
খরচের জন্য, গুগল ম্যাপস প্ল্যাটফর্মের মূল্য তালিকা দেখুন।
কর্মক্ষমতার সর্বোত্তম অনুশীলন
নিম্নলিখিত নির্দেশিকাগুলিতে প্লেস অটোকমপ্লিট (লেগ্যাসি)-এর পারফরম্যান্স অপ্টিমাইজ করার উপায়গুলি বর্ণনা করা হয়েছে:
- আপনার প্লেস অটোকমপ্লিট (লেগ্যাসি) ইমপ্লিমেন্টেশনে দেশভিত্তিক সীমাবদ্ধতা, অবস্থানভিত্তিক পক্ষপাত এবং (প্রোগ্রামভিত্তিক বাস্তবায়নের জন্য) ভাষার পছন্দ যোগ করুন। উইজেটগুলোর ক্ষেত্রে ভাষার পছন্দের প্রয়োজন নেই, কারণ সেগুলো ব্যবহারকারীর ব্রাউজার বা মোবাইল ডিভাইস থেকে ভাষার পছন্দ গ্রহণ করে।
- যদি প্লেস অটোকমপ্লিট (লেগ্যাসি)-এর সাথে একটি মানচিত্র থাকে, তাহলে আপনি মানচিত্র ভিউপোর্ট অনুযায়ী অবস্থান নির্ধারণ করতে পারেন।
- যখন কোনো ব্যবহারকারী প্লেস অটোকমপ্লিট (লেগ্যাসি) প্রেডিকশনগুলোর মধ্যে থেকে কোনো একটি বেছে নেন না—সাধারণত কারণ সেই প্রেডিকশনগুলোর কোনোটিই কাঙ্ক্ষিত ঠিকানা নয়—তখন আপনি আরও প্রাসঙ্গিক ফলাফল পাওয়ার চেষ্টা করার জন্য ব্যবহারকারীর মূল ইনপুটটি পুনরায় ব্যবহার করতে পারেন:
- যদি আপনি আশা করেন যে ব্যবহারকারী শুধুমাত্র ঠিকানার তথ্য প্রবেশ করাবেন, তাহলে জিওকোডিং এপিআই (Geocoding API) -কে কল করার সময় ব্যবহারকারীর মূল ইনপুটটি পুনরায় ব্যবহার করুন।
- যদি ব্যবহারকারী কোনো নির্দিষ্ট স্থানের জন্য নাম বা ঠিকানা দিয়ে অনুসন্ধান করবে বলে আশা করা হয়, তাহলে একটি প্লেস ডিটেইলস (লেগ্যাসি) রিকোয়েস্ট ব্যবহার করুন। যদি শুধুমাত্র একটি নির্দিষ্ট অঞ্চলে ফলাফল প্রত্যাশিত হয়, তাহলে লোকেশন বায়াসিং ব্যবহার করুন।
- ব্যবহারকারীরা কোনো ভবনের নির্দিষ্ট ইউনিট বা অ্যাপার্টমেন্টের মতো উপ-ঠিকানা ইনপুট করেন। উদাহরণস্বরূপ, চেক ঠিকানা "Stroupežnického 3191/17, Praha" প্লেস অটোকমপ্লিট (লেগ্যাসি)-তে একটি আংশিক পূর্বাভাস দেয়।
- ব্যবহারকারীরা নিউ ইয়র্ক সিটির "23-30 29th St, Queens" বা হাওয়াই দ্বীপপুঞ্জের কাওয়াই দ্বীপের "47-380 Kamehameha Hwy, Kaneohe"-এর মতো রোড-সেগমেন্ট প্রিফিক্স সহ ঠিকানা ইনপুট করছেন।
অবস্থান পক্ষপাত
একটি location প্যারামিটার এবং একটি radius প্যারামিটার পাস করে ফলাফলকে একটি নির্দিষ্ট এলাকার দিকে পক্ষপাতদুষ্ট করুন। এটি প্লেস অটোকমপ্লিট (লেগ্যাসি)-কে সংজ্ঞায়িত এলাকার মধ্যে ফলাফল দেখাতে অগ্রাধিকার দিতে নির্দেশ দেয়। সংজ্ঞায়িত এলাকার বাইরের ফলাফলও প্রদর্শিত হতে পারে। আপনি includedRegionCodes প্যারামিটার ব্যবহার করে ফলাফল ফিল্টার করে শুধুমাত্র একটি নির্দিষ্ট দেশের মধ্যে থাকা স্থানগুলো দেখাতে পারেন।
অবস্থান সীমাবদ্ধ করা
locationRestriction প্যারামিটারটি দিয়ে ফলাফল একটি নির্দিষ্ট এলাকায় সীমাবদ্ধ করুন।
আপনি strictbounds প্যারামিটারটি যোগ করে location এবং একটি radius প্যারামিটার দ্বারা সংজ্ঞায়িত অঞ্চলে ফলাফল সীমাবদ্ধ করতে পারেন। এটি Place Autocomplete (Legacy)-কে শুধুমাত্র সেই অঞ্চলের মধ্যে থাকা ফলাফলগুলি ফেরত দিতে নির্দেশ দেয়।