Place Autocomplete
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA)-এর ডেভেলপার
মনে রাখবেন: সার্ভার-সাইড
লাইব্রেরি
এই পৃষ্ঠায় Maps JavaScript API-এর সাথে উপলভ্য
ক্লায়েন্ট-সাইড লাইব্রেরির বিবরণ দেওয়া আছে। আপনার সার্ভারে
Places API ওয়েব পরিষেবা নিয়ে কাজ করতে চাইলে, Google Maps পরিষেবার জন্য Node.js ক্লায়েন্ট দেখুন। এই লিঙ্কে
Google Maps পরিষেবার জন্য Java ক্লায়েন্ট,
Python ক্লায়েন্ট ও Go ক্লায়েন্ট সম্পর্কেও বলা হয়েছে।
ভূমিকা
Maps JavaScript API-এর মধ্যে Places লাইব্রেরির একটি ফিচার হল অটোকমপ্লিট।
Google Maps-এর সার্চ ফিল্ডে টাইপ-এহেড-সার্চের মতো আচরণ আপনার
অ্যাপ্লিকেশনে দিতে, আপনি অটোমেটিক সম্পূর্ণ হওয়া ফিচার ব্যবহার করতে পারবেন।
অটোফিল পরিষেবা সম্পূর্ণ শব্দ ও সাবস্ট্রিং ম্যাচ করতে পারে, এর ফলে
জায়গার নাম, ঠিকানা ও Plus
Codes সংক্রান্ত সমস্যা সমাধান করা যায়। তাই, ব্যবহারকারী টাইপ করার সাথে সাথেই অ্যাপ্লিকেশন কোয়েরি পাঠাতে পারে, যাতে
তৎক্ষণাৎ জায়গার পূর্বাভাস দেওয়া যায়। Places API-এর সংজ্ঞা অনুযায়ী,
কোনও 'স্থান' বলতে কোনও প্রতিষ্ঠান, ভৌগোলিক লোকেশন বা উল্লেখযোগ্য
আগ্রহের স্থানকে বোঝায়।
শুরু করা
Maps JavaScript API-তে Places লাইব্রেরি ব্যবহার করার আগে, প্রথমে যাচাই করে নিন যে Maps JavaScript API-এর জন্য
আপনি যে প্রোজেক্ট সেট-আপ করেছেন, সেই একই প্রোজেক্টে Google Cloud Console-এ Places API চালু করা আছে।
একটি প্রোজেক্ট বেছে নিন বোতামে ক্লিক করুন, তারপর Maps JavaScript API-এর জন্য আপনি যে প্রোজেক্ট সেট-আপ করেছেন
সেটি বেছে নিয়ে খুলুন বিকল্পে ক্লিক করুন।
ড্যাশবোর্ডে API-এর তালিকা থেকে, Places API খুঁজে দেখুন।
আপনি তালিকায় API দেখতে পেলে, সব সেট-আপ করা হয়ে গেছে। তবে, এই প্রোজেক্টটি লেগ্যাসি স্ট্যাটাসে আছে।
Legacy
পর্যায় এবং Legacy থেকে নতুন পরিষেবায় কীভাবে মাইগ্রেট করবেন সেই সম্পর্কে আরও জানতে, Legacy প্রোডাক্ট ও ফিচার দেখুন।
অটোফিল
এবং SearchBox
উইজেটের জন্য একটি ব্যতিক্রম উপলভ্য, যা এখনও Places API (নতুন)-এ GA প্রোডাক্ট হিসেবে উপলভ্য নয়।
লাইব্রেরি লোড করা
Places পরিষেবা হল একটি স্বতন্ত্র লাইব্রেরি, যা মূল
Maps JavaScript API কোড থেকে আলাদা। এই লাইব্রেরির মধ্যে থাকা ফিচার ব্যবহার করতে, Maps API বুটস্ট্র্যাপ URL-এ libraries
প্যারামিটার ব্যবহার করে আপনাকে প্রথমে এটি লোড করতে হবে:
API-তে দুই ধরনের অটোফিল উইজেট আছে, যা আপনি যথাক্রমে
Autocomplete ও SearchBox ক্লাস ব্যবহার করে যোগ করতে পারবেন।
এছাড়াও, আপনি প্রোগ্রাম্যাটিক উপায়ে অটোকমপ্লিট ফলাফল
রিট্রিভ করতে AutocompleteService ক্লাস ব্যবহার করতে পারেন (Maps JavaScript API রেফারেন্স দেখুন:
AutocompleteService ক্লাস)।
উপলভ্য ক্লাসের সারসংক্ষেপ নিচে দেওয়া হল:
Autocomplete আপনার ওয়েবপেজে একটি টেক্সট ইনপুট ফিল্ড যোগ করে
এবং সেই ফিল্ডে অক্ষর এন্ট্রি মনিটর করে। ব্যবহারকারী টেক্সট লেখা শুরু করলে,
অটোকমপ্লিট ফিচার ড্রপ-ডাউন তালিকা
হিসেবে জায়গার পূর্বাভাষ দেখায়। ব্যবহারকারী তালিকা থেকে কোনও জায়গা বেছে নিলে, সেই জায়গা সম্পর্কে
তথ্য অটো-কমপ্লিট অবজেক্টে রিটার্ন করা হয় এবং আপনার অ্যাপ্লিকেশন
সেটি রিট্রিভ করতে পারে। নিচে বিবরণ দেখুন।
ছবি ১: অটোমেটিক পূরণ করা টেক্সট ফিল্ড ও বেছে নেওয়ার তালিকাছবি ২: সম্পূর্ণ ঠিকানা ফর্ম
SearchBox আপনার ওয়েবপেজে একটি টেক্সট ইনপুট ফিল্ড যোগ করে, ঠিক
Autocomplete-এর মতোই। দুটির মধ্যে পার্থক্যগুলি নিচে উল্লেখ করা হল:
প্রধান পার্থক্য হল
পিক লিস্টে দেখানো ফলাফল। SearchBox সাপ্লাই করে
অনুমানের একটি বর্ধিত তালিকা, যার মধ্যে জায়গা (Places API-এর
মাধ্যমে সংজ্ঞায়িত) এবং সাজেস্ট করা সার্চ কোয়েরি অন্তর্ভুক্ত থাকতে পারে। যেমন, ব্যবহারকারী যদি 'নতুন পিৎজা' লেখেন, তাহলে বাছাই করা তালিকায়
'নিউ ইয়র্ক, নিউ ইয়র্কের পিৎজা' এবং বিভিন্ন পিৎজা
আউটলেটের নামও থাকতে পারে।
SearchBox-এ সার্চ সীমাবদ্ধ করার জন্য
Autocomplete-এর তুলনায় কম বিকল্প আছে। প্রথমটিতে, আপনি
নির্দিষ্ট LatLngBounds-এর দিকে সার্চকে পক্ষপাতদুষ্ট করতে পারবেন। পরেরটিতে
আপনি সার্চকে কোনও নির্দিষ্ট দেশ ও নির্দিষ্ট
ধরনের জায়গার মধ্যে সীমাবদ্ধ করতে পারবেন, পাশাপাশি বাউন্ড সেট করতে পারবেন। আরও তথ্যের জন্য, নিচে দেখুন।
ছবি ৩: SearchBox সার্চ করা শব্দ ও জায়গার পূর্বানুমান দেখায়।নিচে বিবরণ দেখুন।
প্রোগ্রামাটিক উপায়ে
পূর্বাভাস পেতে আপনি একটি
AutocompleteService অবজেক্ট তৈরি করতে পারেন। মিলছে এমন জায়গা পেতে getPlacePredictions()-এ কল করুন
অথবা মিলছে এমন জায়গা ও সাজেস্ট করা সার্চ কোয়েরি পেতে getQueryPredictions()-এ কল করুন।
মনে রাখবেন: AutocompleteService কোনও UI কন্ট্রোল যোগ করে না।
পরিবর্তে, উপরের পদ্ধতিগুলি প্রেডিকশন অবজেক্টের একটি অ্যারে রিটার্ন করে। প্রতিটি
পূর্বাভাস অবজেক্টে পূর্বাভাসের টেক্সট, রেফারেন্স
তথ্য এবং কীভাবে ফলাফল ব্যবহারকারীর ইনপুটের সাথে ম্যাচ করে তার বিবরণ থাকে। নিচে দেওয়া
বিবরণ দেখুন।
'অটোকমপ্লিট' উইজেট যোগ করা
Autocomplete
উইজেট আপনার ওয়েবপেজে একটি টেক্সট ইনপুট ফিল্ড তৈরি করে, UI পিক
লিস্টে জায়গার পূর্বাভাস প্রদান করে এবং getPlace() অনুরোধের উত্তরে জায়গার বিবরণ রিটার্ন করে। পিক লিস্টের
প্রতিটি এন্ট্রি একটি জায়গাকে (Places API-এর মাধ্যমে সংজ্ঞায়িত) বোঝায়।
Autocomplete কনস্ট্রাক্টর দুটি আর্গুমেন্ট নেয়:
text ধরনের HTML input এলিমেন্ট। এটি হল ইনপুট ফিল্ড যা অটোমেটিক সম্পূর্ণ হওয়ার
পরিষেবা মনিটর করবে এবং এর ফলাফল অ্যাটাচ করবে।
একটি ঐচ্ছিক AutocompleteOptions আর্গুমেন্ট, যার মধ্যে
নিম্নলিখিত প্রপার্টি থাকতে পারে:
ব্যবহারকারীর বেছে নেওয়া PlaceResult-এর জন্য Place Details উত্তরে
অন্তর্ভুক্ত করার fields জন্য ডেটার অ্যারে। প্রপার্টি সেট করা না থাকলে অথবা ['ALL'] পাস করা হলে, উপলভ্য সব ফিল্ড ফেরত দেওয়া হয় এবং
বিল করা হয় (প্রোডাকশন ডেপ্লয়মেন্টের জন্য এটি সাজেস্ট করা হয় না
)। ফিল্ডের তালিকার জন্য, PlaceResult দেখুন।
types-এর একটি অ্যারে যা
সাপোর্ট করা ধরন-এ তালিকাভুক্ত একটি স্পষ্ট ধরন বা ধরনের সংগ্রহ নির্দিষ্ট করে। কোনও ধরন উল্লেখ করা না থাকলে, সব ধরন
ফেরানো হয়।
bounds হল একটি google.maps.LatLngBounds অবজেক্ট যা
সেইসব এলাকা নির্দিষ্ট করে যেখানে জায়গা সার্চ করতে হবে। ফলাফলগুলি এই সীমার মধ্যে থাকা জায়গার প্রতি পক্ষপাতদুষ্ট, তবে এর মধ্যেই সীমাবদ্ধ নয়।
strictBounds হল একটি boolean
যা নির্দিষ্ট করে যে API-কে অবশ্যই সেইসব জায়গা রিটার্ন করতে হবে যেগুলি প্রদত্ত bounds-এর
দ্বারা সংজ্ঞায়িত অঞ্চলের মধ্যে কঠোরভাবে পড়ে। ব্যবহারকারীর ইনপুট ম্যাচ করলেও API এই অঞ্চলের বাইরের ফলাফল
ফেরায় না।
componentRestrictions নির্দিষ্ট গ্রুপের মধ্যে ফলাফল সীমাবদ্ধ করতে ব্যবহার করা যেতে পারে।
আপনি সর্বাধিক ৫টি
দেশের ভিত্তিতে ফিল্টার করতে componentRestrictions ব্যবহার করতে পারবেন। দেশকে অবশ্যই দুই-অক্ষরের ISO 3166-1 Alpha-2 মানানসই দেশের কোড হিসেবে পাস করতে হবে।
একাধিক দেশ থাকলে, সেগুলিকে দেশের কোডের তালিকা হিসেবে পাস করতে হবে।
মনে রাখবেন: দেশ কোড সহ অপ্রত্যাশিত ফলাফল পেলে, আপনি যে কোড ব্যবহার করছেন তাতে সেইসব দেশ, অধীনস্থ অঞ্চল এবং বিশেষ
ভৌগোলিক আগ্রহের ক্ষেত্র অন্তর্ভুক্ত আছে কিনা তা যাচাই করে নিন
যেগুলি আপনি চান। আপনি কোড সংক্রান্ত তথ্য এখানে পেতে পারেন:
উইকিপিডিয়া: ISO-এর তালিকা
3166 দেশের কোড অথবা ISO অনলাইন ব্রাউজিং
প্ল্যাটফর্ম।
placeIdOnly-এর মাধ্যমে
Autocomplete উইজেটকে শুধুমাত্র প্লেস আইডি রিট্রিভ করার নির্দেশ দেওয়া যেতে পারে। Autocomplete অবজেক্টে
getPlace() কল করলে, উপলভ্য করা
PlaceResult আইটেমে শুধুমাত্র place id,
types ও name প্রপার্টি সেট করা থাকবে। আপনি Places, Geocoding, Directions বা Distance Matrix
পরিষেবাতে কল করার সময়, ফেরত পাওয়া
প্লেস আইডি ব্যবহার করতে পারবেন।
অটোকমপ্লিট পূর্বানুমান সীমাবদ্ধ করা
ডিফল্ট হিসেবে, প্লেস অটোকমপ্লিট সব ধরনের জায়গার নাম দেখায়, তবে ব্যবহারকারীর লোকেশনের
কাছাকাছি জায়গার নাম দেখানোর ক্ষেত্রে পক্ষপাতদুষ্ট হয় এবং ব্যবহারকারীর বেছে নেওয়া জায়গার জন্য উপলভ্য সব ডেটা ফিল্ড ফেচ করে। আপনার ব্যবহারের ক্ষেত্রে
ভিত্তিতে আরও প্রাসঙ্গিক পূর্বাভাস দেখানোর জন্য 'জায়গা'
অটোমেটিক সম্পূর্ণ করার বিকল্প সেট করুন।
নির্মাণ চলাকালীন বিকল্প সেট করা
উইজেট তৈরি করার সময় সীমাবদ্ধতা সেট করতে Autocomplete কনস্ট্রাক্টর একটি AutocompleteOptions
প্যারামিটার গ্রহণ করে। নিম্নলিখিত উদাহরণটি
bounds, componentRestrictions এবং types বিকল্পগুলিকে
establishment ধরনের জায়গার অনুরোধ করার জন্য সেট করে, নির্দিষ্ট ভৌগোলিক
এলাকার মধ্যে থাকা জায়গাগুলিকে অগ্রাধিকার দেয় এবং শুধুমাত্র মার্কিন যুক্তরাষ্ট্রের মধ্যে থাকা জায়গার জন্য ভবিষ্যদ্বাণী সীমাবদ্ধ করে।
fields বিকল্প সেট করলে, ব্যবহারকারীর বেছে নেওয়া জায়গা সম্পর্কে কী কী তথ্য রিটার্ন করতে হবে তা নির্দিষ্ট করা হয়।
আগে থেকে থাকা উইজেটের কোনও বিকল্পের ভ্যালু পরিবর্তন করতে setOptions() কল করুন।
TypeScript
constcenter={lat:50.064192,lng:-130.605469};// Create a bounding box with sides ~10km away from the center pointconstdefaultBounds={north:center.lat+0.1,south:center.lat-0.1,east:center.lng+0.1,west:center.lng-0.1,};constinput=document.getElementById("pac-input")asHTMLInputElement;constoptions={bounds:defaultBounds,componentRestrictions:{country:"us"},fields:["address_components","geometry","icon","name"],strictBounds:false,};constautocomplete=newgoogle.maps.places.Autocomplete(input,options);
constcenter={lat:50.064192,lng:-130.605469};// Create a bounding box with sides ~10km away from the center pointconstdefaultBounds={north:center.lat+0.1,south:center.lat-0.1,east:center.lng+0.1,west:center.lng-0.1,};constinput=document.getElementById("pac-input");constoptions={bounds:defaultBounds,componentRestrictions:{country:"us"},fields:["address_components","geometry","icon","name"],strictBounds:false,};constautocomplete=newgoogle.maps.places.Autocomplete(input,options);
আপনার প্রয়োজন নেই এমন Places Data SKUs-এর জন্য বিল যাতে না করা হয়, সেই জন্য ডেটা ফিল্ড নির্দিষ্ট করুন। উইজেট কনস্ট্রাক্টরে পাস করা fields প্রপার্টিকে
AutocompleteOptions অন্তর্ভুক্ত করুন, যেমন আগের
উদাহরণে দেখানো হয়েছে অথবা আগে থেকে থাকা Autocomplete অবজেক্টে setFields() কল করুন।
ম্যাপ ভিউপোর্ট বা আয়তাকার বাউন্ডের উপর ভিত্তি করে ফলাফলকে বর্তমান বাউন্ডের মধ্যে সীমাবদ্ধ রাখতে strictBounds বিকল্প সেট করুন।
autocomplete.setOptions({strictBounds:true});
কোনও নির্দিষ্ট দেশের মধ্যে সীমাবদ্ধ রাখা
componentRestrictions বিকল্প ব্যবহার করুন অথবা সর্বাধিক পাঁচটি দেশের একটি নির্দিষ্ট সেটে
অটোমেটিক সম্পূর্ণ হওয়া সার্চ সীমাবদ্ধ করতে setComponentRestrictions() নম্বরে কল করুন।
types বিকল্প ব্যবহার করুন অথবা setTypes() নম্বরে কল করে নির্দিষ্ট ধরনের জায়গার জন্য
পূর্বাভাস সীমাবদ্ধ করুন। এই সীমাবদ্ধতা একটি ধরন বা ধরনের সংগ্রহ নির্দিষ্ট করে,
জায়গার ধরন-এ তালিকাভুক্ত করা হয়েছে।
কোনও সীমাবদ্ধতা উল্লেখ করা না থাকলে, সব ধরনের ফলাফল দেখানো হয়।
types বিকল্পের মান বা setTypes()-এ পাস করা মানের জন্য, আপনি
এগুলির মধ্যে যেকোনও একটি নির্দিষ্ট করতে পারেন:
ব্যবহারকারী অটোকমপ্লিট
টেক্সট ফিল্ডের সাথে অ্যাটাচ করা সাজেশন থেকে কোনও জায়গা বেছে নিলে, পরিষেবা একটি place_changed ইভেন্ট ফায়ার করে। জায়গার
বিবরণ পেতে:
place_changed ইভেন্টের জন্য একটি ইভেন্ট হ্যান্ডলার তৈরি করুন এবং হ্যান্ডলার যোগ করতে Autocomplete অবজেক্টে addListener()
কল করুন।
PlaceResult
অবজেক্ট পেতে, Autocomplete অবজেক্টে Autocomplete.getPlace()
কল করুন, যা আপনি বেছে নেওয়া
জায়গা সম্পর্কে আরও তথ্য পেতে ব্যবহার করতে পারবেন।
সাধারণত, কোনও ব্যবহারকারী কোনও জায়গা বেছে নিলে, 'অটোফিল' বেছে নেওয়া জায়গার জন্য উপলভ্য থাকা সব
ডেটা ফিল্ড রিটার্ন করে এবং সেই অনুযায়ী আপনাকে বিল করা হয়।
কোন কোন প্লেস ডেটা ফিল্ড রিটার্ন করতে হবে তা নির্দিষ্ট করতে Autocomplete.setFields()
ব্যবহার করুন। আপনি অনুরোধ করতে পারেন এমন জায়গার ডেটা ফিল্ডের তালিকা সহ
PlaceResult অবজেক্ট সম্পর্কে আরও জানুন। প্রয়োজন নেই এমন ডেটার জন্য পেমেন্ট করা এড়াতে, আপনি যে প্লেস ডেটা ব্যবহার করবেন তা নির্দিষ্ট করতে Autocomplete.setFields() ব্যবহার করতে ভুলবেন না।
name প্রপার্টিতে Places Autocomplete-এর পূর্বানুমান থেকে
description থাকে। আপনি
description সম্পর্কে
জায়গা
অটোমেটিক সম্পূর্ণ হওয়ার ডকুমেন্টেশন থেকে আরও জানতে পারবেন।
ঠিকানার ফর্মের ক্ষেত্রে, স্ট্রাকচার্ড ফর্ম্যাটে ঠিকানা পেলে সুবিধা হয়। বেছে নেওয়া জায়গার জন্য
স্ট্রাকচার্ড ঠিকানা পেতে, কল করুন
Autocomplete.setFields()
এবং address_components ফিল্ড উল্লেখ করুন।
নিচের উদাহরণে, ঠিকানার
ফর্মের ফিল্ড পূরণ করতে অটোকমপ্লিট ব্যবহার করা হয়েছে।
TypeScript
functionfillInAddress(){// Get the place details from the autocomplete object.constplace=autocomplete.getPlace();letaddress1="";letpostcode="";// Get each component of the address from the place details,// and then fill-in the corresponding field on the form.// place.address_components are google.maps.GeocoderAddressComponent objects// which are documented at http://goo.gle/3l5i5Mrfor(constcomponentofplace.address_componentsasgoogle.maps.GeocoderAddressComponent[]){// @ts-ignore remove once typings fixedconstcomponentType=component.types[0];switch(componentType){case"street_number":{address1=`${component.long_name}${address1}`;break;}case"route":{address1+=component.short_name;break;}case"postal_code":{postcode=`${component.long_name}${postcode}`;break;}case"postal_code_suffix":{postcode=`${postcode}-${component.long_name}`;break;}case"locality":(document.querySelector("#locality")asHTMLInputElement).value=component.long_name;break;case"administrative_area_level_1":{(document.querySelector("#state")asHTMLInputElement).value=component.short_name;break;}case"country":(document.querySelector("#country")asHTMLInputElement).value=component.long_name;break;}}address1Field.value=address1;postalField.value=postcode;// After filling the form with address components from the Autocomplete// prediction, set cursor focus on the second address line to encourage// entry of subpremise information such as apartment, unit, or floor number.address2Field.focus();}
functionfillInAddress(){// Get the place details from the autocomplete object.constplace=autocomplete.getPlace();letaddress1="";letpostcode="";// Get each component of the address from the place details,// and then fill-in the corresponding field on the form.// place.address_components are google.maps.GeocoderAddressComponent objects// which are documented at http://goo.gle/3l5i5Mrfor(constcomponentofplace.address_components){// @ts-ignore remove once typings fixedconstcomponentType=component.types[0];switch(componentType){case"street_number":{address1=`${component.long_name}${address1}`;break;}case"route":{address1+=component.short_name;break;}case"postal_code":{postcode=`${component.long_name}${postcode}`;break;}case"postal_code_suffix":{postcode=`${postcode}-${component.long_name}`;break;}case"locality":document.querySelector("#locality").value=component.long_name;break;case"administrative_area_level_1":{document.querySelector("#state").value=component.short_name;break;}case"country":document.querySelector("#country").value=component.long_name;break;}}address1Field.value=address1;postalField.value=postcode;// After filling the form with address components from the Autocomplete// prediction, set cursor focus on the second address line to encourage// entry of subpremise information such as apartment, unit, or floor number.address2Field.focus();}window.initAutocomplete=initAutocomplete;
ডিফল্ট হিসেবে, অটোকমপ্লিট পরিষেবা দ্বারা তৈরি করা টেক্সট ফিল্ডে
স্ট্যান্ডার্ড প্লেসহোল্ডার টেক্সট থাকে। টেক্সট পরিবর্তন করতে, input এলিমেন্টে
placeholder অ্যাট্রিবিউট সেট করুন:
<input id="searchTextField" type="text" size="50" placeholder="Anything you want!">
মনে রাখবেন: ডিফল্ট প্লেসহোল্ডার টেক্সট অটোমেটিক লোকালাইজ করা হয়। আপনি নিজের প্লেসহোল্ডার ভ্যালু উল্লেখ করলে, আপনাকে নিজের অ্যাপ্লিকেশনে সেই
ভ্যালুর লোকালাইজেশন ম্যানেজ করতে হবে।
Google Maps
JavaScript API কীভাবে ব্যবহার করার জন্য ভাষা বেছে নেয় সেই সম্পর্কে তথ্য পেতে,
লোকালাইজেশন সংক্রান্ত ডকুমেন্টেশন পড়ুন।
SearchBox ব্যবহারকারীদের টেক্সট-ভিত্তিক ভৌগোলিক
সার্চ করতে দেয়, যেমন 'নিউ ইয়র্কে পিৎজা' বা 'রবসন স্ট্রিটের কাছাকাছি জুতোর দোকান'।
আপনি SearchBox টেক্সট ফিল্ডে অ্যাটাচ করতে পারবেন এবং টেক্সট
ইনপুট করা হলে, পরিষেবা ড্রপ-ডাউন পিক লিস্টের
মাধ্যমে সাজেশন দেখাবে।
SearchBox আরও বেশি সংখ্যক পূর্বানুমান প্রদান করে, যার মধ্যে
জায়গা (Places API-এর সংজ্ঞা অনুযায়ী) এবং সাজেস্ট করা সার্চ
কোয়েরি অন্তর্ভুক্ত থাকতে পারে। যেমন, ব্যবহারকারী যদি 'নতুন পিৎজা' লেখেন, তাহলে বাছাই করা তালিকায় 'নিউ ইয়র্ক, নিউ ইয়র্কের পিৎজা' বাক্যাংশ এবং বিভিন্ন
পিৎজা আউটলেটের নাম অন্তর্ভুক্ত থাকতে পারে। কোনও ব্যবহারকারী তালিকা থেকে কোনও জায়গা বেছে নিলে,
সেই জায়গা সম্পর্কিত তথ্য SearchBox অবজেক্টে রিটার্ন করা হয় এবং আপনার অ্যাপ্লিকেশন
সেটি ফিরিয়ে আনতে পারে।
SearchBox কনস্ট্রাক্টর দুটি আর্গুমেন্ট নেয়:
text ধরনের HTML input এলিমেন্ট। এটি হল
ইনপুট ফিল্ড যা SearchBox পরিষেবা মনিটর করবে এবং
এর ফলাফল অ্যাটাচ করবে।
options আর্গুমেন্ট, যার মধ্যে
bounds প্রপার্টি থাকতে পারে:
bounds হল google.maps.LatLngBounds
অবজেক্ট যা সেই এলাকা নির্দিষ্ট করে যেখানে জায়গা খুঁজতে হবে। ফলাফল
এইসব সীমার মধ্যে থাকা জায়গাগুলির
প্রতি পক্ষপাতদুষ্ট, তবে এর মধ্যেই সীমাবদ্ধ নয়।
নিম্নলিখিত কোডটি, অক্ষাংশ/দ্রাঘিমাংশ কোঅর্ডিনেট ব্যবহার করে নির্দিষ্ট করা
একটি বিশেষ ভৌগোলিক এলাকার মধ্যে থাকা জায়গাগুলির
প্রতি ফলাফলকে পক্ষপাতদুষ্ট করতে, bounds প্যারামিটার ব্যবহার করে।
ব্যবহারকারী সার্চ
বক্সে অ্যাটাচ করা পূর্বাভাস থেকে কোনও আইটেম বেছে নিলে, পরিষেবা একটি places_changed ইভেন্ট ফায়ার করে। আপনি SearchBox অবজেক্টে getPlaces() কল করে
একাধিক পূর্বাভাষ সহ একটি অ্যারে পেতে পারেন, যার প্রতিটিই হল একটি
PlaceResult অবজেক্ট।
// Listen for the event fired when the user selects a prediction and retrieve// more details for that place.searchBox.addListener("places_changed",()=>{constplaces=searchBox.getPlaces();if(places.length==0){return;}// Clear out the old markers.markers.forEach((marker)=>{marker.setMap(null);});markers=[];// For each place, get the icon, name and location.constbounds=newgoogle.maps.LatLngBounds();places.forEach((place)=>{if(!place.geometry||!place.geometry.location){console.log("Returned place contains no geometry");return;}consticon={url:place.iconasstring,size:newgoogle.maps.Size(71,71),origin:newgoogle.maps.Point(0,0),anchor:newgoogle.maps.Point(17,34),scaledSize:newgoogle.maps.Size(25,25),};// Create a marker for each place.markers.push(newgoogle.maps.Marker({map,icon,title:place.name,position:place.geometry.location,}));if(place.geometry.viewport){// Only geocodes have viewport.bounds.union(place.geometry.viewport);}else{bounds.extend(place.geometry.location);}});map.fitBounds(bounds);});
// Listen for the event fired when the user selects a prediction and retrieve// more details for that place.searchBox.addListener("places_changed",()=>{constplaces=searchBox.getPlaces();if(places.length==0){return;}// Clear out the old markers.markers.forEach((marker)=>{marker.setMap(null);});markers=[];// For each place, get the icon, name and location.constbounds=newgoogle.maps.LatLngBounds();places.forEach((place)=>{if(!place.geometry||!place.geometry.location){console.log("Returned place contains no geometry");return;}consticon={url:place.icon,size:newgoogle.maps.Size(71,71),origin:newgoogle.maps.Point(0,0),anchor:newgoogle.maps.Point(17,34),scaledSize:newgoogle.maps.Size(25,25),};// Create a marker for each place.markers.push(newgoogle.maps.Marker({map,icon,title:place.name,position:place.geometry.location,}),);if(place.geometry.viewport){// Only geocodes have viewport.bounds.union(place.geometry.viewport);}else{bounds.extend(place.geometry.location);}});map.fitBounds(bounds);});
প্রোগ্রাম্যাটিক উপায়ে ভবিষ্যদ্বাণী রিট্রিভ করতে, AutocompleteService ক্লাস ব্যবহার করুন। AutocompleteService
কোনও UI কন্ট্রোল যোগ করে না। পরিবর্তে, এটি প্রেডিকশন
অবজেক্টের একটি অ্যারে রিটার্ন করে, যার প্রতিটিতে প্রেডিকশনের টেক্সট, রেফারেন্স সংক্রান্ত তথ্য,
এবং কীভাবে ফলাফল ব্যবহারকারীর ইনপুটের সাথে ম্যাচ করে তার বিবরণ থাকে।
আপনি যদি উপরে বর্ণিত Autocomplete এবং SearchBox
দ্বারা অফার করা ইউজার ইন্টারফেসের চেয়ে বেশি কন্ট্রোল চান, তাহলে এটি কার্যকর হবে।
AutocompleteService নিম্নলিখিত পদ্ধতিগুলি প্রকাশ করে:
getPlacePredictions() লোকেশন সংক্রান্ত পূর্বাভাষ দেখায়।
মনে রাখবেন: Places API-এর সংজ্ঞা অনুযায়ী, কোনও 'জায়গা' বলতে কোনও প্রতিষ্ঠান, ভৌগোলিক লোকেশন বা উল্লেখযোগ্য
আগ্রহের স্থানকে বোঝায়।
getQueryPredictions()-এ আরও বেশি
পূর্বাভাস সহ একটি তালিকা দেখানো হয়, যার মধ্যে জায়গা (Places API-এর সংজ্ঞা অনুযায়ী)
ও সাজেস্ট করা সার্চ কোয়েরি অন্তর্ভুক্ত থাকতে পারে। যেমন, ব্যবহারকারী 'নতুন পিৎজা' লিখলে, বাছাই করা তালিকায়
'নিউ ইয়র্ক, নিউ ইয়র্কের পিৎজা' এবং বিভিন্ন পিৎজা আউটলেটের নাম অন্তর্ভুক্ত থাকতে পারে।
উপরের দুটি পদ্ধতিতেই নিম্নলিখিত ফর্মের
পূর্বাভাস
অবজেক্টের একটি অ্যারে রিটার্ন করে:
description হল মিলে যাওয়া পূর্বাভাস।
distance_meters হল নির্দিষ্ট করা AutocompletionRequest.origin থেকে জায়গাটির দূরত্ব, যা
মিটারে দেখানো হয়।
matched_substrings-এর বিবরণে এমন সাবস্ট্রিংয়ের সেট আছে যা
ব্যবহারকারীর ইনপুটের এলিমেন্টের সাথে ম্যাচ করে। আপনার অ্যাপ্লিকেশনে
সেইসব সাবস্ট্রিং হাইলাইট করার জন্য এটি কাজে লাগে। অনেক ক্ষেত্রে, কোয়েরিটি
বিবরণ ফিল্ডের সাবস্ট্রিং হিসেবে দেখা যাবে।
length হল সাবস্ট্রিংয়ের দৈর্ঘ্য।
offset হল ক্যারেক্টার অফসেট, যা বিবরণ স্ট্রিংয়ের
শুরু থেকে পরিমাপ করা হয় এবং যেখানে মিলে যাওয়া সাবস্ট্রিং
দেখা যায়।
terms হল কোয়েরির এলিমেন্ট সহ একটি অ্যারে। কোনও
স্থানের ক্ষেত্রে, প্রতিটি এলিমেন্ট সাধারণত ঠিকানার একটি অংশ তৈরি করে।
offset হল ক্যারেক্টার অফসেট, যা বিবরণ স্ট্রিংয়ের
শুরু থেকে পরিমাপ করা হয় এবং যেখানে মিলে যাওয়া সাবস্ট্রিং
দেখা যায়।
value হল মিলে যাওয়া শব্দ।
নিচের উদাহরণে, 'পিজ্জা নিয়ার' বাক্যাংশের জন্য কোয়েরি পূর্বাভাষ সংক্রান্ত অনুরোধ কার্যকর করা হয়েছে
এবং ফলাফল একটি তালিকায় দেখানো হয়েছে।
TypeScript
// This example retrieves autocomplete predictions programmatically from the// autocomplete service, and displays them as an HTML list.// This example requires the Places library. Include the libraries=places// parameter when you first load the API. For example:// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">functioninitService():void{constdisplaySuggestions=function(predictions:google.maps.places.QueryAutocompletePrediction[]|null,status:google.maps.places.PlacesServiceStatus){if(status!=google.maps.places.PlacesServiceStatus.OK||!predictions){alert(status);return;}predictions.forEach((prediction)=>{constli=document.createElement("li");li.appendChild(document.createTextNode(prediction.description));(document.getElementById("results")asHTMLUListElement).appendChild(li);});};constservice=newgoogle.maps.places.AutocompleteService();service.getQueryPredictions({input:"pizza near Syd"},displaySuggestions);}declareglobal{interfaceWindow{initService:()=>void;}}window.initService=initService;
// This example retrieves autocomplete predictions programmatically from the// autocomplete service, and displays them as an HTML list.// This example requires the Places library. Include the libraries=places// parameter when you first load the API. For example:// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">functioninitService(){constdisplaySuggestions=function(predictions,status){if(status!=google.maps.places.PlacesServiceStatus.OK||!predictions){alert(status);return;}predictions.forEach((prediction)=>{constli=document.createElement("li");li.appendChild(document.createTextNode(prediction.description));document.getElementById("results").appendChild(li);});};constservice=newgoogle.maps.places.AutocompleteService();service.getQueryPredictions({input:"pizza near Syd"},displaySuggestions);}window.initService=initService;
<html>
<head>
<title>Retrieving Autocomplete Predictions</title>
<link rel="stylesheet" type="text/css" href="./style.css" />
<script type="module" src="./index.js"></script>
</head>
<body>
<p>Query suggestions for 'pizza near Syd':</p>
<ul id="results"></ul>
<!-- Replace Powered By Google image src with self hosted image. https://developers.google.com/maps/documentation/places/web-service/policies#other_attribution_requirements -->
<img
class="powered-by-google"
src="https://storage.googleapis.com/geo-devrel-public-buckets/powered_by_google_on_white.png"
alt="Powered by Google"
/>
<!--
The `defer` attribute causes the script to execute after the full HTML
document has been parsed. For non-blocking uses, avoiding race conditions,
and consistent behavior across browsers, consider loading using Promises. See
https://developers.google.com/maps/documentation/javascript/load-maps-js-api
for more information.
-->
<script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initService&libraries=places&v=weekly"
defer
></script>
</body>
</html>
AutocompleteService.getPlacePredictions()
বিলিং সংক্রান্ত
উদ্দেশ্যের জন্য অটোফিল সংক্রান্ত অনুরোধ একসাথে গ্রুপ করতে সেশন টোকেন (প্রয়োগ করা হলে) ব্যবহার করতে পারে। বিলিংয়ের উদ্দেশ্যে সেশন টোকেন ব্যবহারকারীর
অটোফিল সার্চের কোয়েরি ও বেছে নেওয়ার ফেজকে আলাদা সেশনে গ্রুপ করে। ব্যবহারকারী কোয়েরি টাইপ করা শুরু করলে সেশন
শুরু হয় এবং কোনও জায়গা বেছে নিলে তা
শেষ হয়। প্রতিটি সেশনে একাধিক কোয়েরি থাকতে পারে, তারপরে একটি জায়গা বেছে নেওয়া হয়।
সেশন শেষ হয়ে গেলে, টোকেন আর বৈধ থাকে না। আপনার অ্যাপকে
প্রতিটি সেশনের জন্য নতুন টোকেন তৈরি করতে হবে। আমরা সাজেস্ট করি যে
সব অটোকমপ্লিট সেশনের জন্য সেশন টোকেন ব্যবহার করুন। sessionToken প্যারামিটার বাদ দেওয়া হলে অথবা আপনি সেশন টোকেন আবার ব্যবহার করলে, সেশনকে এমনভাবে চার্জ করা হয় যেন কোনও
সেশন টোকেন দেওয়া হয়নি (প্রতিটি অনুরোধের জন্য আলাদাভাবে বিল করা হয়)।
আপনি একই সেশন টোকেন ব্যবহার করে, AutocompleteService.getPlacePredictions()-এ কল করার ফলে পাওয়া প্লেসের জন্য একটি
প্লেস বিবরণ
অনুরোধ করতে পারবেন।
এই ক্ষেত্রে, অটোফিল সম্পূর্ণ করার অনুরোধটি প্লেস বিবরণ
অনুরোধের সাথে একত্রিত করা হয় এবং কলটিকে একটি সাধারণ প্লেস বিবরণ অনুরোধ হিসেবে চার্জ করা হয়। অটোমেটিক সম্পূর্ণ করার অনুরোধের জন্য কোনও চার্জ
লাগে না।
প্রতিটি নতুন সেশনের জন্য একটি অনন্য সেশন টোকেন পাস করতে ভুলবেন না। একাধিক
অটোকমপ্লিট সেশনের জন্য একই টোকেন ব্যবহার করলে সেইসব অটোকমপ্লিট সেশন বাতিল হয়ে যাবে এবং বাতিল সেশনে করা সব অটোকমপ্লিট অনুরোধের
জন্য প্রতি অনুরোধ পিছু অটোকমপ্লিট
SKU ব্যবহার করে আলাদা আলাদা চার্জ করা হবে। সেশন টোকেন সম্পর্কে আরও জানুন।
নিম্নলিখিত উদাহরণে সেশন টোকেন তৈরি করা এবং তারপরে এটিকে
AutocompleteService-এ পাস করা দেখানো হয়েছে (displaySuggestions()
ফাংশনটি সংক্ষিপ্ত করার জন্য বাদ দেওয়া হয়েছে):
// Create a new session token.varsessionToken=newgoogle.maps.places.AutocompleteSessionToken();// Pass the token to the autocomplete service.varautocompleteService=newgoogle.maps.places.AutocompleteService();autocompleteService.getPlacePredictions({input:'pizza near Syd',sessionToken:sessionToken},displaySuggestions);
প্রতিটি নতুন সেশনের জন্য একটি অনন্য সেশন টোকেন পাস করতে ভুলবেন না। একাধিক সেশনের জন্য একই
টোকেন ব্যবহার করলে, প্রতিটি অনুরোধের জন্য আলাদা আলাদা করে বিল
করা হবে।
ডিফল্ট হিসেবে, Autocomplete ও
SearchBox-এর দেওয়া UI এলিমেন্ট Google Maps-এ অন্তর্ভুক্ত করার জন্য স্টাইল করা হয়। আপনার নিজের সাইটের সাথে মানানসই করতে
আপনি হয়ত স্টাইলিং অ্যাডজাস্ট করতে চাইবেন। নিম্নলিখিত CSS ক্লাসগুলি উপলভ্য।
নিচে তালিকাভুক্ত সব ক্লাসই
Autocomplete ও SearchBox উইজেট, দু'টির ক্ষেত্রেই প্রযোজ্য।
অটোমেটিক সম্পূর্ণ হওয়া ও SearchBox উইজেটের জন্য CSS ক্লাস
CSS ক্লাস
বিবরণ
pac-container
Place Autocomplete পরিষেবা থেকে পাওয়া পূর্বাভাসের তালিকা সহ ভিজ্যুয়াল এলিমেন্ট।
এই তালিকাটি
Autocomplete বা SearchBox উইজেটের নিচে ড্রপ-ডাউন তালিকা হিসেবে দেখা যায়।
pac-icon
পূর্বাভাসের তালিকায় প্রতিটি আইটেমের বাঁদিকে দেখানো
আইকন।
pac-item
Autocomplete বা SearchBox উইজেট দ্বারা সরবরাহ করা
পূর্বানুমানের তালিকায় থাকা আইটেম।
pac-item:hover
ব্যবহারকারী মাউস পয়েন্টার আইটেমের উপর নিয়ে গেলে সেটি।
pac-item-selected
ব্যবহারকারী কীবোর্ড ব্যবহার করে আইটেমটি বেছে নিলে। মনে রাখবেন: বেছে নেওয়া আইটেম এই ক্লাস ও pac-item ক্লাসের মেম্বার হবে।
pac-item-query
pac-item-এর মধ্যে থাকা একটি স্প্যান যা হল
পূর্বানুমানের মূল অংশ। ভৌগোলিক লোকেশনের ক্ষেত্রে, এতে কোনও জায়গার নাম থাকে, যেমন
'সিডনি' অথবা কোনও রাস্তার নাম ও নম্বর, যেমন '১০ কিং স্ট্রিট'। 'নিউ ইয়র্কে পিৎজা'-এর মতো
টেক্সট-ভিত্তিক সার্চের ক্ষেত্রে, এতে কোয়েরির সম্পূর্ণ টেক্সট
থাকে। সাধারণত, pac-item-query কালো রঙে
রঙ করা থাকে। pac-item-এ কোনও অতিরিক্ত টেক্সট থাকলে, সেটি
pac-item-query-এর বাইরে থাকে এবং
pac-item থেকে স্টাইলিং পায়। ডিফল্ট হিসেবে এটি ধূসর রঙে থাকে। অতিরিক্ত টেক্সট
সাধারণত একটি ঠিকানা হয়।
pac-matched
ফেরানো পূর্বাভাসের যে অংশ ব্যবহারকারীর ইনপুটের সাথে ম্যাচ করে। ডিফল্ট
হিসেবে, এই ম্যাচ করা টেক্সট বোল্ড টেক্সটে হাইলাইট করা হয়। মনে রাখবেন যে
ম্যাচ করা টেক্সট pac-item-এর মধ্যে যেকোনও জায়গায় থাকতে পারে। এটি যে
pac-item-query-এর অংশ হবেই এমন কোনও কথা নেই এবং এটি আংশিকভাবে
pac-item-query-এর মধ্যে এবং আংশিকভাবে pac-item-এর
বাকি টেক্সটে থাকতে পারে।
প্লেস অটোকমপ্লিট (Legacy) অপ্টিমাইজেশন
এই বিভাগে, আপনাকে Place Autocomplete (Legacy) পরিষেবা থেকে সবচেয়ে বেশি সুবিধা পেতে সাহায্য করার জন্য পেশাদার পদ্ধতি বর্ণনা করা হয়েছে।
শুরু থেকেই প্রয়োজনীয়
প্লেস অটোকমপ্লিট (লেগ্যাসি) ডেটা ফিল্ড
সম্পর্কে জানুন।
লোকেশন বায়াসিং ও লোকেশন বিধিনিষেধ ফিল্ড ঐচ্ছিক হলেও অটো-কমপ্লিট পারফর্ম্যান্সের উপর
এর উল্লেখযোগ্য প্রভাব পড়তে পারে।
API কোনও সমস্যা দেখালে, আপনার অ্যাপ যাতে ভালোভাবে কাজ করা বন্ধ করতে পারে তা নিশ্চিত করতে
সমস্যা হ্যান্ডেল করার সুবিধা ব্যবহার করুন।
কোনও বিকল্প বেছে না নিলে আপনার অ্যাপ যেন তা সামলাতে পারে এবং ব্যবহারকারীদের চালিয়ে যাওয়ার
সুযোগ দেয় তা নিশ্চিত করুন।
খরচ অপ্টিমাইজ করা সংক্রান্ত পেশাদার পদ্ধতি
খরচ কমানোর প্রাথমিক পদ্ধতি
Place Autocomplete (Legacy)
পরিষেবা ব্যবহারের খরচ অপ্টিমাইজ করতে, Place Details (Legacy) এবং Place Autocomplete (Legacy) উইজেটে ফিল্ড মাস্ক ব্যবহার করে শুধুমাত্র আপনার প্রয়োজনীয়
Place Autocomplete (Legacy) ডেটা ফিল্ড
রিটার্ন করুন।
উন্নত খরচ অপ্টিমাইজেশন
'প্লেস অটোকমপ্লিট (Legacy)' ফিচারের প্রোগ্রাম্যাটিক প্রয়োগের কথা বিবেচনা করুন, যাতে আপনি
SKU: Autocomplete - Per Request pricing
অ্যাক্সেস করতে পারেন এবং 'প্লেস ডিটেলস (Legacy)' ফিচারের পরিবর্তে বেছে নেওয়া জায়গা সম্পর্কে জিওকোডিং API ফলাফল পেতে পারেন। নিম্নলিখিত দুটি শর্ত পূরণ হলে, জিওকোডিং API-এর সাথে প্রতি-অনুরোধের মূল্য নির্ধারণ, প্রতি-সেশন (সেশন-ভিত্তিক) মূল্য নির্ধারণের চেয়ে বেশি সাশ্রয়ী হয়:
আপনি যদি শুধুমাত্র ব্যবহারকারীর বেছে নেওয়া জায়গার অক্ষাংশ/দ্রাঘিমাংশ বা ঠিকানা চান, তাহলে জিওকোডিং API, প্লেস বিবরণ (Legacy) কলের চেয়ে কম খরচে এই তথ্য প্রদান করে।
ব্যবহারকারীরা যদি গড়ে চারটি বা তার কম প্লেস অটোকমপ্লিট (Legacy) প্রেডিকশন অনুরোধের মধ্যে অটোকমপ্লিট প্রেডিকশন বেছে নেন, তাহলে প্রতি-অনুরোধের মূল্য নির্ধারণ, প্রতি-সেশনের মূল্য নির্ধারণের চেয়ে বেশি সাশ্রয়ী হতে পারে।
আপনার প্রয়োজন অনুযায়ী Place Autocomplete (Legacy) প্রয়োগ বেছে নেওয়ার ব্যাপারে সাহায্য পেতে, নিম্নলিখিত প্রশ্নের যে উত্তরটি আপনার ক্ষেত্রে প্রযোজ্য, সেই ট্যাবটি বেছে নিন।
আপনার অ্যাপ্লিকেশনে কি বেছে নেওয়া পূর্বাভাসের ঠিকানা ও অক্ষাংশ/দ্রাঘিমাংশ ছাড়া অন্য কোনও তথ্য প্রয়োজন?
নিচে উল্লেখ করা নির্দেশিকায়, প্লেস অটোকমপ্লিট (Legacy) পারফর্ম্যান্স অপ্টিমাইজ করার উপায় বর্ণনা করা হয়েছে:
আপনার Place Autocomplete (Legacy)
ইমপ্লিমেন্টেশনে দেশ সংক্রান্ত বিধিনিষেধ,
লোকেশন বায়াসিং,
এবং (প্রোগ্রামাটিক ইমপ্লিমেন্টেশনের জন্য) ভাষার অগ্রাধিকার যোগ করুন। উইজেটের ক্ষেত্রে ভাষার অগ্রাধিকারের প্রয়োজন নেই
কারণ সেগুলি ব্যবহারকারীর ব্রাউজার বা মোবাইল ডিভাইস থেকে ভাষার অগ্রাধিকার বেছে নেয়।
Place Autocomplete (Legacy)-এর সাথে ম্যাপ থাকলে, আপনি ম্যাপ ভিউপোর্ট অনুযায়ী লোকেশনকে পক্ষপাতদুষ্ট করতে পারবেন।
এমন পরিস্থিতি যখন ব্যবহারকারী প্লেস অটোকমপ্লিট (Legacy) থেকে কোনও সাজেশন বেছে নেন না, সাধারণত
কারণ সেইসব সাজেশন থেকে কাঙ্ক্ষিত ফলাফল-ঠিকানা পাওয়া যায় না, তখন আপনি আরও প্রাসঙ্গিক ফলাফল পাওয়ার জন্য মূল
ব্যবহারকারীর ইনপুট আবার ব্যবহার করতে পারেন:
আপনি যদি ব্যবহারকারীর থেকে শুধুমাত্র ঠিকানা সংক্রান্ত তথ্য আশা করেন, তাহলে Geocoding API-তে কল করার সময় মূল ব্যবহারকারীর ইনপুট
আবার ব্যবহার করুন।
আপনি যদি আশা করেন যে ব্যবহারকারী কোনও নির্দিষ্ট জায়গার নাম বা ঠিকানা লিখে কোয়েরি করবেন,
তাহলে 'জায়গার বিবরণ (Legacy)' অনুরোধ ব্যবহার করুন। ফলাফল যদি শুধুমাত্র একটি নির্দিষ্ট অঞ্চলে প্রত্যাশিত হয়, তাহলে লোকেশন বায়াসিং ব্যবহার করুন।
Geocoding API-তে ফিরে যাওয়ার জন্য উপযুক্ত অন্যান্য পরিস্থিতিগুলির মধ্যে এগুলি অন্তর্ভুক্ত:
ব্যবহারকারী কোনও বিল্ডিংয়ের মধ্যে নির্দিষ্ট ইউনিট বা অ্যাপার্টমেন্টের মতো
সাবপ্রিমিজ ঠিকানা ইনপুট করছেন। যেমন, চেক ঠিকানা "Stroupežnického 3191/17, Praha"
প্লেস অটোকমপ্লিট (Legacy)-এ আংশিক পূর্বাভাস দেয়।
ব্যবহারকারীরা রোড-সেগমেন্ট প্রিফিক্স সহ ঠিকানা ইনপুট করছেন, যেমন
নিউ ইয়র্ক সিটিতে "23-30 29th St, Queens" অথবা হাওয়াইয়ের কাউয়াই দ্বীপে "47-380 Kamehameha Hwy, Kaneohe"।
লোকেশন বায়াসিং
location প্যারামিটার ও radius
প্যারামিটার পাস করে নির্দিষ্ট এলাকার ফলাফলকে পক্ষপাতদুষ্ট করে। এটি প্লেস অটোকমপ্লিট (Legacy)-কে নির্দেশ দেয় যে, সংজ্ঞায়িত এলাকার মধ্যে ফলাফল দেখাতে
অগ্রাধিকার দিতে হবে। নির্ধারিত এলাকার বাইরে থাকা ফলাফল এখনও
দেখানো হতে পারে। নির্দিষ্ট দেশের মধ্যে থাকা জায়গাগুলি দেখাতে, আপনি ফলাফল ফিল্টার করতে includedRegionCodes প্যারামিটার ব্যবহার করতে পারবেন
লোকেশন সংক্রান্ত বিধিনিষেধ
locationRestriction প্যারামিটার পাস করে ফলাফলকে নির্দিষ্ট এলাকায় সীমাবদ্ধ করুন।
এছাড়াও, আপনি location
ও radius প্যারামিটার দ্বারা সংজ্ঞায়িত অঞ্চলে ফলাফল সীমাবদ্ধ করতে পারেন, এর জন্য আপনাকে
strictbounds
প্যারামিটার যোগ করতে হবে। এটি প্লেস অটোকমপ্লিট (Legacy)-কে সেই অঞ্চলের মধ্যে শুধুমাত্র
ফলাফল রিটার্ন করার নির্দেশ দেয়।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2026-10-05 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[]]