ভূমিকা
অটোকমপ্লিট (নতুন) একটি ওয়েব পরিষেবা যা একটি HTTP অনুরোধের জবাবে স্থানের পূর্বাভাস এবং অনুসন্ধানের পূর্বাভাস প্রদান করে। অনুরোধে, একটি টেক্সট সার্চ স্ট্রিং এবং ভৌগোলিক সীমানা উল্লেখ করুন যা অনুসন্ধানের এলাকা নিয়ন্ত্রণ করে।
অটোকমপ্লিট (নতুন) ইনপুটের সম্পূর্ণ শব্দ এবং সাবস্ট্রিং মিলিয়ে স্থানের নাম, ঠিকানা এবং প্লাস কোড শনাক্ত করতে পারে। ফলে, ব্যবহারকারী টাইপ করার সাথে সাথেই অ্যাপ্লিকেশনগুলো কোয়েরি পাঠাতে পারে, যা তাৎক্ষণিকভাবে স্থান এবং কোয়েরির পূর্বাভাস প্রদান করে।
অটোকমপ্লিট (নতুন) থেকে প্রাপ্ত উত্তরে দুই ধরনের পূর্বাভাস থাকতে পারে:
- স্থানের পূর্বাভাস : নির্দিষ্ট ইনপুট টেক্সট স্ট্রিং এবং অনুসন্ধান এলাকার উপর ভিত্তি করে ব্যবসা প্রতিষ্ঠান, ঠিকানা এবং দর্শনীয় স্থানের মতো বিভিন্ন জায়গা। ডিফল্টরূপে স্থানের পূর্বাভাস দেখানো হয়।
- কোয়েরি প্রেডিকশন : ইনপুট টেক্সট স্ট্রিং এবং সার্চ এরিয়ার সাথে মিলে যাওয়া কোয়েরি স্ট্রিং। ডিফল্টরূপে কোয়েরি প্রেডিকশন ফেরত দেওয়া হয় না। রেসপন্সে কোয়েরি প্রেডিকশন যোগ করতে
includeQueryPredictionsরিকোয়েস্ট প্যারামিটারটি ব্যবহার করুন।
উদাহরণস্বরূপ, আপনি আংশিক ব্যবহারকারী ইনপুট সম্বলিত একটি স্ট্রিং, যেমন "Sicilian piz", ব্যবহার করে Autocomplete (New) কল করলেন, এবং সার্চ এলাকাটি সান ফ্রান্সিসকো, CA-তে সীমাবদ্ধ রাখলেন। এরপর প্রতিক্রিয়াটিতে সার্চ স্ট্রিং এবং সার্চ এলাকার সাথে মিলে যাওয়া সম্ভাব্য স্থানগুলির একটি তালিকা থাকে, যেমন "Sicilian Pizza Kitchen" নামের রেস্তোরাঁটি, এবং সেই সাথে স্থানটি সম্পর্কে বিস্তারিত তথ্যও থাকে।
প্রাপ্ত স্থান পূর্বাভাসগুলো ব্যবহারকারীকে তার কাঙ্ক্ষিত স্থান নির্বাচনে সহায়তা করার জন্য উপস্থাপন করা হয়। প্রাপ্ত স্থান পূর্বাভাসগুলোর যেকোনোটি সম্পর্কে আরও তথ্য পেতে আপনি একটি ' স্থানের বিবরণ (নতুন)' অনুরোধ করতে পারেন।
প্রতিক্রিয়াটিতে সার্চ স্ট্রিং এবং সার্চ এলাকার সাথে মেলে এমন কোয়েরি প্রেডিকশনের একটি তালিকাও থাকতে পারে, যেমন "সিসিলিয়ান পিৎজা ও পাস্তা"। প্রতিক্রিয়ার প্রতিটি কোয়েরি প্রেডিকশনে একটি text ফিল্ড থাকে, যেখানে একটি প্রস্তাবিত টেক্সট সার্চ স্ট্রিং দেওয়া থাকে। আরও বিস্তারিত সার্চ করার জন্য টেক্সট সার্চ (নতুন) -এ ইনপুট হিসেবে সেই স্ট্রিংটি ব্যবহার করুন।
এপিআই এক্সপ্লোরার আপনাকে সরাসরি অনুরোধ করার সুযোগ দেয়, যাতে আপনি এপিআই এবং এর অপশনগুলোর সাথে পরিচিত হতে পারেন:
স্বয়ংক্রিয় সম্পূর্ণতা (নতুন) অনুরোধ
একটি অটোকমপ্লিট (নতুন) অনুরোধ হলো একটি URL-এ পাঠানো একটি HTTP POST অনুরোধ, যার গঠনটি নিম্নরূপ:
https://places.googleapis.com/v1/places:autocomplete
POST অনুরোধের অংশ হিসেবে সমস্ত প্যারামিটার JSON অনুরোধের বডিতে অথবা হেডারে পাঠান। উদাহরণস্বরূপ:
curl -X POST -d '{
"input": "pizza",
"locationBias": {
"circle": {
"center": {
"latitude": 37.7937,
"longitude": -122.3965
},
"radius": 500.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
সমর্থিত প্যারামিটার
প্যারামিটার | বর্ণনা |
|---|---|
| অনুসন্ধানের জন্য টেক্সট স্ট্রিং (সম্পূর্ণ শব্দ, সাবস্ট্রিং, স্থানের নাম, ঠিকানা, এবং কোড)। |
| রেসপন্সে কোন কোন ফিল্ড ফেরত দেওয়া হবে তা নির্দিষ্ট করে এমন কমা দ্বারা পৃথক করা তালিকা। |
সর্বোচ্চ পাঁচটি নির্দিষ্ট প্রাথমিক প্রকারের যেকোনো একটির সাথে মেলে এমন স্থানগুলিতে ফলাফল সীমাবদ্ধ করে। | |
যদি সত্য হয়, তাহলে ভৌত অবস্থানবিহীন ব্যবসাগুলোও অন্তর্ভুক্ত হবে (পরিষেবা এলাকার ব্যবসা)। ডিফল্ট মান মিথ্যা। | |
যদি 'true' হয়, তাহলে রেসপন্সে প্লেস এবং কোয়েরি উভয় প্রেডিকশনই অন্তর্ভুক্ত হবে। ডিফল্ট মান 'false'। | |
ফলাফল সীমাবদ্ধ করার জন্য সর্বোচ্চ ১৫টি দুই-অক্ষরের দেশের কোডের অ্যারে। | |
ইনপুট স্ট্রিং-এর মধ্যে কার্সরের অবস্থানের শূন্য-ভিত্তিক ইউনিকোড ক্যারেক্টার অফসেট, যা প্রেডিকশনকে প্রভাবিত করে। ডিফল্ট মান ইনপুটের দৈর্ঘ্য। | |
ফলাফলের জন্য পছন্দের ভাষা (IETF BCP-47 কোড)। ডিফল্ট হিসেবে Accept-Language হেডার অথবা 'en' ব্যবহৃত হয়। | |
অনুসন্ধানের ফলাফলকে একটি নির্দিষ্ট এলাকার (বৃত্ত বা আয়তক্ষেত্র) দিকে প্রভাবিত করার জন্য একটি এলাকা নির্দিষ্ট করে, এবং ঐ এলাকার বাইরের ফলাফলকেও অনুমতি দেয়। এটি locationRestriction-এর সাথে ব্যবহার করা যায় না। | |
অনুসন্ধানের ফলাফল সীমাবদ্ধ করার জন্য একটি এলাকা (বৃত্ত বা আয়তক্ষেত্র) নির্দিষ্ট করে। এই এলাকার বাইরের ফলাফল বাদ দেওয়া হয়। locationBias-এর সাথে এটি ব্যবহার করা যায় না। | |
প্রত্যাশিত গন্তব্যস্থলে সরলরৈখিক দূরত্ব (দূরত্ব মিটার) গণনা করতে উৎস বিন্দু (অক্ষাংশ, দ্রাঘিমাংশ) ব্যবহার করা হয়। | |
প্রতিক্রিয়া এবং পক্ষপাতমূলক পরামর্শ বিন্যাস করতে ব্যবহৃত অঞ্চল কোড (যেমন, 'uk', 'fr')। | |
বিলিংয়ের উদ্দেশ্যে অটোকমপ্লিট কলগুলোকে একটি সেশনে একত্রিত করার জন্য ব্যবহারকারী-সৃষ্ট স্ট্রিং। |
প্রতিক্রিয়া সম্পর্কে
অটোকমপ্লিট (নতুন) প্রতিক্রিয়া হিসাবে একটি JSON অবজেক্ট ফেরত দেয়। প্রতিক্রিয়ার মধ্যে:
-
suggestionsঅ্যারেটিতে অনুমিত প্রাসঙ্গিকতার ক্রমানুসারে সমস্ত পূর্বাভাসিত স্থান এবং কোয়েরিগুলো থাকে। প্রতিটি স্থান একটিplacePredictionফিল্ড দ্বারা এবং প্রতিটি কোয়েরি একটিqueryPredictionফিল্ড দ্বারা উপস্থাপিত হয়। -
placePredictionফিল্ডটিতে একটি নির্দিষ্ট স্থানের পূর্বাভাস সম্পর্কিত বিস্তারিত তথ্য থাকে, যার মধ্যে স্থানের আইডি এবং পাঠ্য বিবরণ অন্তর্ভুক্ত। -
queryPredictionফিল্ডে একটিমাত্র কোয়েরি প্রেডিকশন সম্পর্কে বিস্তারিত তথ্য থাকে।
সম্পূর্ণ JSON অবজেক্টটি নিম্নলিখিত আকারে থাকে:
{
"suggestions": [
{
"placePrediction": {
"place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
"placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
"text": {
"text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
"matches": [
{
"endOffset": 6
}]
},
...
},
{
"queryPrediction": {
"text": {
"text": "Amoeba Music",
"matches": [
{
"endOffset": 6
}]
},
...
}
...]
}প্রয়োজনীয় প্যারামিটার
ইনপুট
যে টেক্সট স্ট্রিংটির উপর অনুসন্ধান করা হবে। সম্পূর্ণ শব্দ ও উপ-স্ট্রিং, স্থানের নাম, ঠিকানা এবং প্লাস কোড উল্লেখ করুন। অটোকমপ্লিট (নতুন) পরিষেবাটি এই স্ট্রিংটির উপর ভিত্তি করে সম্ভাব্য মিলগুলো ফেরত দেয় এবং ফলাফলগুলোকে তাদের অনুভূত প্রাসঙ্গিকতা অনুসারে সাজায়।
ঐচ্ছিক পরামিতি
ফিল্ডমাস্ক
একটি রেসপন্স ফিল্ড মাস্ক তৈরি করে রেসপন্সে ফেরত দেওয়া ফিল্ডগুলির তালিকা নির্দিষ্ট করুন। HTTP হেডার
X-Goog-FieldMaskব্যবহার করে রেসপন্স ফিল্ড মাস্কটি মেথডে পাস করুন।ফেরত দেওয়ার জন্য সাজেশন ফিল্ডগুলোর একটি কমা-দ্বারা-বিভক্ত তালিকা নির্দিষ্ট করুন। উদাহরণস্বরূপ, সাজেশনটির
suggestions.placePrediction.text.textএবংsuggestions.queryPrediction.text.textপুনরুদ্ধার করতে।X-Goog-FieldMask: suggestions.placePrediction.text.text,suggestions.queryPrediction.text.text
সমস্ত ফিল্ড পুনরুদ্ধার করতে
*ব্যবহার করুন।X-Goog-FieldMask: *
ভবিষ্যতে চালু হতে যাওয়া ব্যবসা অন্তর্ভুক্ত করুন
যদি
true, তাহলে ভবিষ্যতে চালু হতে পারে এমন ব্যবসা প্রতিষ্ঠানগুলো ফেরত দেবে। ডিফল্ট মান 'false।অন্তর্ভুক্ত প্রাথমিক প্রকার
একটি স্থানের প্রাথমিক ধরন টেবিল A বা টেবিল B- তে তালিকাভুক্ত ধরনগুলো থেকে কেবল একটিই হতে পারে। উদাহরণস্বরূপ, প্রাথমিক ধরনটি হতে পারে
"mexican_restaurant"বা"steak_house"।ডিফল্টরূপে, এপিআইটি কোনো স্থানের সাথে যুক্ত প্রাথমিক প্রকারের মান নির্বিশেষে,
inputপ্যারামিটারের উপর ভিত্তি করে সমস্ত স্থান ফেরত দেয়।includedPrimaryTypesপ্যারামিটারটি পাস করে ফলাফলকে একটি নির্দিষ্ট প্রাথমিক প্রকার বা প্রকারগুলোর মধ্যে সীমাবদ্ধ করুন।টেবিল A বা টেবিল B থেকে সর্বোচ্চ পাঁচটি টাইপ ভ্যালু নির্দিষ্ট করতে এই প্যারামিটারটি ব্যবহার করুন। রেসপন্সে অন্তর্ভুক্ত হওয়ার জন্য একটি স্থানকে অবশ্যই নির্দিষ্ট প্রাইমারি টাইপ ভ্যালুগুলোর মধ্যে একটির সাথে মিলতে হবে।
এই প্যারামিটারে এর পরিবর্তে
(regions)বা(cities)-এর মধ্যে যেকোনো একটিও অন্তর্ভুক্ত থাকতে পারে।(regions)ধরনের সংগ্রহটি এলাকা বা বিভাগ, যেমন পাড়া এবং পোস্টাল কোড, ফিল্টার করে।(cities)ধরনের সংগ্রহটি এমন স্থান ফিল্টার করে, যেগুলোকে গুগল শহর হিসেবে চিহ্নিত করে।নিম্নলিখিত ক্ষেত্রে অনুরোধটি
INVALID_REQUESTত্রুটির সাথে প্রত্যাখ্যাত হয়:- পাঁচটিরও বেশি প্রকার নির্দিষ্ট করা হয়েছে।
-
(cities)বা(regions)-এর পাশাপাশি যেকোনো প্রকার নির্দিষ্ট করা হয়। - যেকোনো অচেনা প্রকার নির্দিষ্ট করা হয়।
বিশুদ্ধ পরিষেবা এলাকার ব্যবসা অন্তর্ভুক্ত করুন
যদি '
trueসেট করা হয়, তাহলে রেসপন্সে সেইসব ব্যবসাও অন্তর্ভুক্ত হবে যারা সরাসরি গ্রাহকদের কাছে যায় বা ডেলিভারি করে, কিন্তু যাদের কোনো ভৌত ব্যবসায়িক ঠিকানা নেই। যদিfalseসেট করা হয়, তাহলে API শুধুমাত্র সেইসব ব্যবসাকেই রিটার্ন করবে যাদের ভৌত ব্যবসায়িক ঠিকানা আছে।includeQueryPredictions
যদি
true, তাহলে রেসপন্সে স্থান এবং কোয়েরি উভয় প্রেডিকশনই অন্তর্ভুক্ত থাকে। ডিফল্ট মান হলোfalse, যার অর্থ রেসপন্সে শুধুমাত্র স্থানের প্রেডিকশন অন্তর্ভুক্ত থাকে।অন্তর্ভুক্ত অঞ্চল কোডগুলি
শুধুমাত্র নির্দিষ্ট অঞ্চলের তালিকা থেকে ফলাফল অন্তর্ভুক্ত করুন, যা সর্বোচ্চ ১৫টি ccTLD ("টপ-লেভেল ডোমেইন") দুই-অক্ষরের মানের একটি অ্যারে হিসাবে নির্দিষ্ট করা হয়েছে। এটি বাদ দিলে, প্রতিক্রিয়ার উপর কোনো বিধিনিষেধ প্রয়োগ করা হয় না। উদাহরণস্বরূপ, অঞ্চলগুলিকে জার্মানি এবং ফ্রান্সে সীমাবদ্ধ করতে:
"includedRegionCodes": ["de", "fr"]
আপনি যদি
locationRestrictionএবংincludedRegionCodesউভয়ই নির্দিষ্ট করেন, তাহলে ফলাফল দুটি সেটিংয়ের ছেদবিন্দুতে অবস্থিত হবে।ইনপুট অফসেট
শূন্য-ভিত্তিক ইউনিকোড ক্যারেক্টার অফসেট যা
inputকার্সরের অবস্থান নির্দেশ করে। কার্সরের অবস্থান ফেরত আসা প্রেডিকশনগুলোকে প্রভাবিত করতে পারে। এটি খালি থাকলে, ডিফল্টভাবেinputদৈর্ঘ্যের সমান হয়।ভাষা কোড
ফলাফল ফেরত দেওয়ার জন্য পছন্দের ভাষা। ফলাফল মিশ্র ভাষায় হতে পারে, যদি
inputব্যবহৃত ভাষাlanguageCodeদ্বারা নির্দিষ্ট করা মান থেকে ভিন্ন হয়, অথবা যদি ফেরত দেওয়া স্থানটির স্থানীয় ভাষা থেকেlanguageCodeএ কোনো অনুবাদ না থাকে।- পছন্দের ভাষা নির্দিষ্ট করার জন্য আপনাকে অবশ্যই IETF BCP-47 ভাষা কোড ব্যবহার করতে হবে।
- যদি
languageCodeসরবরাহ করা না হয়, তাহলে APIAccept-Languageহেডারে নির্দিষ্ট করা মানটি ব্যবহার করে। যদি কোনোটিই নির্দিষ্ট করা না থাকে, তাহলে ডিফল্ট মান হয়en। আপনি যদি একটি অবৈধ ভাষা কোড নির্দিষ্ট করেন, তাহলে API একটিINVALID_ARGUMENTত্রুটি ফেরত দেয়। - পছন্দের ভাষাটি এপিআই যে ফলাফলগুলো ফেরত দেবে এবং সেগুলো যে ক্রমে ফেরত দেওয়া হবে, তার ওপর সামান্য প্রভাব ফেলে। এটি এপিআই-এর বানান ভুল সংশোধন করার ক্ষমতাকেও প্রভাবিত করে।
- এপিআইটি এমন একটি রাস্তার ঠিকানা দেওয়ার চেষ্টা করে যা ব্যবহারকারী এবং স্থানীয় জনগণ উভয়ের জন্যই পাঠযোগ্য এবং একই সাথে ব্যবহারকারীর দেওয়া তথ্যকেও প্রতিফলিত করে। প্রতিটি অনুরোধে ব্যবহারকারীর দেওয়া তথ্যের ওপর নির্ভর করে স্থানের পূর্বাভাসগুলো ভিন্ন ভিন্ন বিন্যাসে সাজানো হয়।
-
inputপ্যারামিটারে থাকা মিলযুক্ত পদগুলো প্রথমে বেছে নেওয়া হয়। এক্ষেত্রে,languageCodeপ্যারামিটার উপলব্ধ থাকলে, সেই ভাষা পছন্দের সাথে সামঞ্জস্যপূর্ণ নাম ব্যবহার করা হয়; অন্যথায়, ব্যবহারকারীর ইনপুটের সাথে সবচেয়ে ভালোভাবে মেলে এমন নাম ব্যবহার করা হয়। -
inputপ্যারামিটারের শর্তাবলীর সাথে মিল রেখে উপযুক্ত শব্দ বাছাই করার পরেই, রাস্তার ঠিকানাগুলো স্থানীয় ভাষায় এবং সম্ভব হলে ব্যবহারকারীর পাঠযোগ্য লিপিতে বিন্যস্ত করা হয়। -
inputপ্যারামিটারে থাকা শব্দগুলোর সাথে মিল রেখে উপযুক্ত শব্দ বেছে নেওয়ার পর, অন্য সব ঠিকানা পছন্দের ভাষায় ফেরত দেওয়া হয়। যদি কোনো নাম পছন্দের ভাষায় উপলব্ধ না থাকে, তাহলে এপিআই সবচেয়ে কাছাকাছি মিল থাকা নামটি ব্যবহার করে।
-
অবস্থান পক্ষপাত বা অবস্থান সীমাবদ্ধতা
অনুসন্ধানের এলাকা নির্ধারণ করতে আপনি
locationBiasঅথবাlocationRestrictionনির্দিষ্ট করতে পারেন, কিন্তু উভয়ই নয়।locationRestrictionকে এমন একটি অঞ্চল হিসেবে ভাবুন যার মধ্যে ফলাফল অবশ্যই থাকতে হবে, এবংlocationBiasএমন একটি অঞ্চল হিসেবে ভাবুন যার কাছাকাছি ফলাফল থাকতে হবে কিন্তু তা ওই এলাকার বাইরেও হতে পারে।অবস্থানগত পক্ষপাত
অনুসন্ধানের জন্য একটি এলাকা নির্দিষ্ট করে। এই অবস্থানটি একটি পক্ষপাত হিসেবে কাজ করে, যার অর্থ হলো নির্দিষ্ট এলাকার বাইরের ফলাফলসহ, নির্দিষ্ট অবস্থানের আশেপাশের ফলাফলগুলোও ফেরত দেওয়া হতে পারে।
অবস্থান সীমাবদ্ধতা
অনুসন্ধানের জন্য একটি এলাকা নির্দিষ্ট করে। নির্দিষ্ট এলাকার বাইরের ফলাফল দেখানো হয় না।
locationBiasবাlocationRestrictionঅঞ্চলটিকে একটি আয়তাকার ভিউপোর্ট অথবা একটি বৃত্ত হিসেবে নির্দিষ্ট করুন।একটি বৃত্তকে তার কেন্দ্রবিন্দু এবং মিটারে পরিমাপ করা ব্যাসার্ধ দ্বারা সংজ্ঞায়িত করা হয়। ব্যাসার্ধটি অবশ্যই ০.০ থেকে ৫০০০০.০-এর মধ্যে হতে হবে। এর ডিফল্ট মান হলো ০.০।
locationRestrictionজন্য, আপনাকে অবশ্যই ব্যাসার্ধের মান ০.০-এর চেয়ে বেশি নির্ধারণ করতে হবে। অন্যথায়, অনুরোধটি কোনো ফলাফল প্রদান করবে না।উদাহরণস্বরূপ:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
একটি আয়তক্ষেত্র হলো একটি অক্ষাংশ-দ্রাঘিমাংশ ভিউপোর্ট, যা দুটি তির্যকভাবে বিপরীত
lowও উচ্চ বিন্দু দ্বারা উপস্থাপিত হয়। একটি ভিউপোর্টকে একটি বদ্ধ অঞ্চল হিসেবে বিবেচনা করা হয়, যার অর্থ এটি তার সীমানাকে অন্তর্ভুক্ত করে। অক্ষাংশের সীমা অবশ্যই -৯০ থেকে ৯০ ডিগ্রির মধ্যে এবং দ্রাঘিমাংশের সীমা অবশ্যই -১৮০ থেকে ১৮০ ডিগ্রির মধ্যে হতে হবে।- যদি
low=high, তাহলে ভিউপোর্টটি সেই একক বিন্দুটি নিয়ে গঠিত হয়। - যদি
low.longitude>high.longitude, তাহলে দ্রাঘিমাংশের পরিসরটি উল্টে যায় (ভিউপোর্টটি ১৮০ ডিগ্রি দ্রাঘিমা রেখা অতিক্রম করে)। - যদি
low.longitude= -180 ডিগ্রি এবংhigh.longitude= 180 ডিগ্রি হয়, তাহলে ভিউপোর্টে সমস্ত দ্রাঘিমাংশ অন্তর্ভুক্ত থাকবে। - যদি
low.longitude= 180 ডিগ্রি এবংhigh.longitude= -180 ডিগ্রি হয়, তাহলে দ্রাঘিমাংশের পরিসরটি খালি থাকে।
lowএবংhighউভয়ই অবশ্যই পূরণ করতে হবে এবং প্রদর্শিত বক্সটি খালি থাকতে পারবে না। একটি খালি ভিউপোর্টের ফলে ত্রুটি দেখা দেয়।উদাহরণস্বরূপ, এই ভিউপোর্টটি নিউ ইয়র্ক শহরকে সম্পূর্ণরূপে ঘিরে রেখেছে:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- যদি
উৎপত্তি
যে মূলবিন্দু থেকে গন্তব্যে সরলরৈখিক দূরত্ব গণনা করা হবে (যা
distanceMetersহিসাবে ফেরত দেওয়া হবে)। এই মানটি বাদ দিলে, সরলরৈখিক দূরত্ব ফেরত দেওয়া হবে না। এটি অবশ্যই অক্ষাংশ এবং দ্রাঘিমাংশের স্থানাঙ্ক হিসাবে উল্লেখ করতে হবে:"origin": { "latitude": 40.477398, "longitude": -74.259087 }
অঞ্চল কোড
প্রতিক্রিয়া বিন্যাস করার জন্য ব্যবহৃত অঞ্চল কোডটি একটি ccTLD ("টপ-লেভেল ডোমেইন") দুই-অক্ষরের মান হিসাবে নির্দিষ্ট করা হয়। কিছু উল্লেখযোগ্য ব্যতিক্রম ছাড়া, বেশিরভাগ ccTLD কোড ISO 3166-1 কোডের অনুরূপ। উদাহরণস্বরূপ, যুক্তরাজ্যের ccTLD হলো "uk" (.co.uk) এবং এর ISO 3166-1 কোড হলো "gb" (যা প্রযুক্তিগতভাবে "The United Kingdom of Great Britain and Northern Ireland" সত্তাটিকে বোঝায়)।
অঞ্চল কোডের উপর ভিত্তি করেও পরামর্শগুলো পক্ষপাতদুষ্ট হয়। গুগল ব্যবহারকারীর আঞ্চলিক পছন্দ অনুযায়ী
regionCodeসেট করার সুপারিশ করে।আপনি যদি একটি অবৈধ অঞ্চল কোড উল্লেখ করেন, তাহলে API একটি
INVALID_ARGUMENTত্রুটি ফেরত দেয়। প্রযোজ্য আইন অনুসারে এই প্যারামিটারটি ফলাফলের উপর প্রভাব ফেলতে পারে।সেশন টোকেন
সেশন টোকেন হলো ব্যবহারকারী-সৃষ্ট স্ট্রিং যা অটোকমপ্লিট (নিউ) কলগুলোকে 'সেশন' হিসেবে ট্র্যাক করে। বিলিংয়ের উদ্দেশ্যে, অটোকমপ্লিট (নিউ) একটি ব্যবহারকারীর অটোকমপ্লিট সার্চের কোয়েরি এবং সিলেকশন পর্যায়গুলোকে একটি স্বতন্ত্র সেশনে একত্রিত করতে সেশন টোকেন ব্যবহার করে। আরও তথ্যের জন্য, সেশন টোকেন দেখুন।
ফলাফলকে প্রভাবিত করার জন্য প্যারামিটার নির্বাচন করুন
অটোকমপ্লিট (নতুন) প্যারামিটারগুলো অনুসন্ধানের ফলাফলকে ভিন্নভাবে প্রভাবিত করতে পারে। নিম্নলিখিত সারণিতে উদ্দিষ্ট ফলাফলের উপর ভিত্তি করে প্যারামিটার ব্যবহারের জন্য সুপারিশ প্রদান করা হয়েছে।| প্যারামিটার | ব্যবহারের সুপারিশ |
|---|---|
regionCode | ব্যবহারকারীর আঞ্চলিক পছন্দ অনুযায়ী সেট করা হয়েছে। |
includedRegionCodes | ফলাফলকে নির্দিষ্ট অঞ্চলের তালিকায় সীমাবদ্ধ করতে সেট করুন। |
locationBias | যখন কোনো একটি অঞ্চলের মধ্যে বা তার আশেপাশে ফলাফল পেতে চান, তখন এটি ব্যবহার করুন। প্রযোজ্য ক্ষেত্রে, ব্যবহারকারী মানচিত্রের যে ভিউপোর্টটি দেখছেন, সেটিকে অঞ্চল হিসেবে নির্ধারণ করুন। |
locationRestriction | শুধুমাত্র তখনই ব্যবহার করুন যখন কোনো অঞ্চলের বাইরের ফলাফল ফেরত দেওয়া উচিত নয় । |
origin | যখন প্রতিটি পূর্বাভাসের জন্য একটি সরলরৈখিক দূরত্ব প্রয়োজন হয়, তখন এটি ব্যবহার করুন। |
স্বয়ংক্রিয় সম্পূর্ণতা (নতুন) উদাহরণ
locationRestriction ব্যবহার করে অনুসন্ধান একটি এলাকায় সীমাবদ্ধ করুন।
locationRestriction অনুসন্ধানের জন্য এলাকা নির্দিষ্ট করে। নির্দিষ্ট এলাকার বাইরের ফলাফল ফেরত দেওয়া হয় না। নিম্নলিখিত উদাহরণে, আপনি সান ফ্রান্সিসকোকে কেন্দ্র করে ৫০০০ মিটার ব্যাসার্ধের একটি বৃত্তের মধ্যে অনুরোধটি সীমাবদ্ধ করতে locationRestriction ব্যবহার করেছেন:
curl -X POST -d '{
"input": "Art museum",
"locationRestriction": {
"circle": {
"center": {
"latitude": 37.7749,
"longitude": -122.4194
},
"radius": 5000.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
নির্দিষ্ট এলাকাগুলোর মধ্য থেকে প্রাপ্ত সমস্ত ফলাফল suggestions অ্যারেতে অন্তর্ভুক্ত থাকে:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q", "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q", "text": { "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "structuredFormat": { "mainText": { "text": "Asian Art Museum", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "secondaryText": { "text": "Larkin Street, San Francisco, CA, USA" } }, "types": [ "establishment", "museum", "point_of_interest" ] } }, { "placePrediction": { "place": "places/ChIJI7NivpmAhYARSuRPlbbn_2w", "placeId": "ChIJI7NivpmAhYARSuRPlbbn_2w", "text": { "text": "de Young Museum, Hagiwara Tea Garden Drive, San Francisco, CA, USA", "matches": [ { "endOffset": 15 } ] }, "structuredFormat": { "mainText": { "text": "de Young Museum", "matches": [ { "endOffset": 15 } ] }, "secondaryText": { "text": "Hagiwara Tea Garden Drive, San Francisco, CA, USA" } }, "types": [ "establishment", "point_of_interest", "tourist_attraction", "museum" ] } }, /.../ ] }
আপনি locationRestriction ব্যবহার করে সার্চকে একটি আয়তাকার ভিউপোর্টে সীমাবদ্ধ করতে পারেন। নিম্নলিখিত উদাহরণটি অনুরোধটিকে ডাউনটাউন সান ফ্রান্সিসকোতে সীমাবদ্ধ করে:
curl -X POST -d '{
"input": "Art museum",
"locationRestriction": {
"rectangle": {
"low": {
"latitude": 37.7751,
"longitude": -122.4219
},
"high": {
"latitude": 37.7955,
"longitude": -122.3937
}
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
ফলাফলগুলো suggestions অ্যারেতে রয়েছে:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q", "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q", "text": { "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "structuredFormat": { "mainText": { "text": "Asian Art Museum", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "secondaryText": { "text": "Larkin Street, San Francisco, CA, USA" } }, "types": [ "point_of_interest", "museum", "establishment" ] } }, { "placePrediction": { "place": "places/ChIJyQNK-4SAhYARO2DZaJleWRc", "placeId": "ChIJyQNK-4SAhYARO2DZaJleWRc", "text": { "text": "International Art Museum of America, Market Street, San Francisco, CA, USA", "matches": [ { "startOffset": 14, "endOffset": 24 } ] }, "structuredFormat": { "mainText": { "text": "International Art Museum of America", "matches": [ { "startOffset": 14, "endOffset": 24 } ] }, "secondaryText": { "text": "Market Street, San Francisco, CA, USA" } }, "types": [ "museum", "point_of_interest", "tourist_attraction", "art_gallery", "establishment" ] } } ] }
locationBias ব্যবহার করে একটি নির্দিষ্ট এলাকায় বায়াস সার্চ করুন
locationBias মাধ্যমে, অবস্থানটি একটি বায়াস (bias) হিসেবে কাজ করে, যার মানে হলো নির্দিষ্ট অবস্থানের আশেপাশের ফলাফলগুলোও ফেরত দেওয়া যেতে পারে, এমনকি নির্দিষ্ট এলাকার বাইরের ফলাফলও। নিচের উদাহরণে, আপনি অনুরোধটিকে ডাউনটাউন সান ফ্রান্সিসকোর দিকে বায়াস করছেন:
curl -X POST -d '{
"input": "Amoeba",
"locationBias": {
"circle": {
"center": {
"latitude": 37.7749,
"longitude": -122.4194
},
"radius": 5000.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
ফলাফলে এখন আরও অনেক বিষয় অন্তর্ভুক্ত রয়েছে, যার মধ্যে ৫০০০ মিটার ব্যাসার্ধের বাইরের ফলাফলও আছে:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko", "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko", "text": { "text": "Amoeba Music, Haight Street, San Francisco, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Haight Street, San Francisco, CA, USA" } }, "types": [ "electronics_store", "point_of_interest", "store", "establishment", "home_goods_store" ] } }, { "placePrediction": { "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw", "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw", "text": { "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Telegraph Avenue, Berkeley, CA, USA" } }, "types": [ "electronics_store", "point_of_interest", "establishment", "home_goods_store", "store" ] } }, ... ] }
আপনি একটি আয়তাকার ভিউপোর্টে অনুসন্ধানকে সীমাবদ্ধ করতে locationBias ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণটি অনুরোধটিকে সান ফ্রান্সিসকোর ডাউনটাউনে সীমাবদ্ধ করে:
curl -X POST -d '{
"input": "Amoeba",
"locationBias": {
"rectangle": {
"low": {
"latitude": 37.7751,
"longitude": -122.4219
},
"high": {
"latitude": 37.7955,
"longitude": -122.3937
}
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
যদিও আয়তাকার ভিউপোর্টের ভেতরের অনুসন্ধানের ফলাফলগুলো প্রতিক্রিয়ায় দেখা যায়, পক্ষপাতের কারণে কিছু ফলাফল নির্ধারিত সীমানার বাইরে থাকে। ফলাফলগুলো suggestions অ্যারের মধ্যেও থাকে:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko", "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko", "text": { "text": "Amoeba Music, Haight Street, San Francisco, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Haight Street, San Francisco, CA, USA" } }, "types": [ "point_of_interest", "store", "establishment" ] } }, { "placePrediction": { "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw", "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw", "text": { "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Telegraph Avenue, Berkeley, CA, USA" } }, "types": [ "point_of_interest", "store", "establishment" ] } }, { "placePrediction": { "place": "places/ChIJRdmfADq_woARYaVhnfQSUTI", "placeId": "ChIJRdmfADq_woARYaVhnfQSUTI", "text": { "text": "Amoeba Music, Hollywood Boulevard, Los Angeles, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Hollywood Boulevard, Los Angeles, CA, USA" } }, "types": [ "point_of_interest", "store", "establishment" ] } }, /.../ ] }
অন্তর্ভুক্ত প্রাথমিক প্রকার ব্যবহার করুন
টেবিল A , টেবিল B , অথবা শুধুমাত্র (regions) , অথবা শুধুমাত্র (cities) থেকে সর্বোচ্চ পাঁচটি টাইপ ভ্যালু নির্দিষ্ট করতে includedPrimaryTypes প্যারামিটারটি ব্যবহার করুন। রেসপন্সে অন্তর্ভুক্ত হওয়ার জন্য একটি স্থানকে অবশ্যই নির্দিষ্ট প্রাইমারি টাইপ ভ্যালুগুলোর মধ্যে একটির সাথে মিলতে হবে।
নিম্নলিখিত উদাহরণে, আপনি "Soccer" input স্ট্রিংটি নির্দিষ্ট করেছেন এবং "sporting_goods_store" ধরণের প্রতিষ্ঠানে ফলাফল সীমাবদ্ধ করতে includedPrimaryTypes প্যারামিটারটি ব্যবহার করেছেন:
curl -X POST -d '{
"input": "Soccer",
"includedPrimaryTypes": ["sporting_goods_store"],
"locationBias": {
"circle": {
"center": {
"latitude": 37.7749,
"longitude": -122.4194
},
"radius": 500.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
আপনি যদি includedPrimaryTypes প্যারামিটারটি বাদ দেন, তাহলে ফলাফলে এমন ধরনের প্রতিষ্ঠানও অন্তর্ভুক্ত হতে পারে যা আপনি চান না, যেমন "athletic_field" ।
কোয়েরি পূর্বাভাস অনুরোধ করুন
ডিফল্টরূপে কোয়েরি প্রেডিকশন ফেরত দেওয়া হয় না। রেসপন্সে কোয়েরি প্রেডিকশন যোগ করতে includeQueryPredictions রিকোয়েস্ট প্যারামিটারটি ব্যবহার করুন। উদাহরণস্বরূপ:
curl -X POST -d '{
"input": "Amoeba",
"includeQueryPredictions": true,
"locationBias": {
"circle": {
"center": {
"latitude": 37.7749,
"longitude": -122.4194
},
"radius": 5000.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
উপরে 'About the response'- এ দেখানো অনুযায়ী, suggestions অ্যারেটিতে এখন প্লেস প্রেডিকশন এবং কোয়েরি প্রেডিকশন উভয়ই রয়েছে। প্রতিটি কোয়েরি প্রেডিকশনে একটি text ফিল্ড থাকে, যেখানে একটি প্রস্তাবিত টেক্সট সার্চ স্ট্রিং দেওয়া থাকে। ফেরত আসা যেকোনো কোয়েরি প্রেডিকশন সম্পর্কে আরও তথ্য পেতে আপনি একটি 'Text Search (New)' রিকোয়েস্ট করতে পারেন।
উৎস ব্যবহার করুন
এই উদাহরণে, অনুরোধে অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক হিসাবে origin অন্তর্ভুক্ত করুন। আপনি যখন origin অন্তর্ভুক্ত করেন, তখন অটোকমপ্লিট (নতুন) প্রতিক্রিয়ায় ' distanceMeters ফিল্ডটি যোগ করে, যেখানে origin থেকে গন্তব্য পর্যন্ত সরলরেখার দূরত্ব থাকে। এই উদাহরণে মূলবিন্দুকে সান ফ্রান্সিসকোর কেন্দ্রে সেট করা হয়েছে:
curl -X POST -d '{
"input": "Amoeba",
"origin": {
"latitude": 37.7749,
"longitude": -122.4194
},
"locationRestriction": {
"circle": {
"center": {
"latitude": 37.7749,
"longitude": -122.4194
},
"radius": 5000.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete
প্রতিক্রিয়াটিতে এখন distanceMeters অন্তর্ভুক্ত রয়েছে:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko", "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko", "text": { "text": "Amoeba Music, Haight Street, San Francisco, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Haight Street, San Francisco, CA, USA" } }, "types": [ "home_goods_store", "establishment", "point_of_interest", "store", "electronics_store" ], "distanceMeters": 3012 } } ] }
ভবিষ্যতে চালু হতে যাওয়া ব্যবসাগুলো খুঁজুন।
নিম্নলিখিত উদাহরণটি আইডাহোর নিউ মেডোজে ভবিষ্যতে চালু হতে যাওয়া ব্যবসা প্রতিষ্ঠানগুলোর জন্য একটি অটোকমপ্লিট (নতুন) অনুরোধ দেখাচ্ছে:
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-d '{
"input": "Roberts Greenhouse and Tree Farm",
"includeFutureOpeningBusinesses": true,
"locationBias": {
"circle": {
"center": {"latitude": 44.9755100, "longitude": -116.2842180},
"radius": 20
}
}
}' \
"https://places.googleapis.com/v1/places:autocomplete"
উত্তরে স্থানটি সম্পর্কে বিস্তারিত তথ্য রয়েছে, কিন্তু উদ্বোধনের তারিখ উল্লেখ নেই।
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJp1-VoKWJplQRMz8g-7Wa3Do", "placeId": "ChIJp1-VoKWJplQRMz8g-7Wa3Do", "text": { "text": "Roberts Greenhouse and Tree Farm, McLain Street, New Meadows, ID, USA", "matches": [ { "endOffset": 32 } ] }, "structuredFormat": { "mainText": { "text": "Roberts Greenhouse and Tree Farm", "matches": [ { "endOffset": 32 } ] }, "secondaryText": { "text": "McLain Street, New Meadows, ID, USA" } }, "types": [ "garden_center", "establishment", "service", "store", "point_of_interest" ] } } ] }
প্রতিক্রিয়া থেকে দূরত্ব অনুপস্থিত
কিছু ক্ষেত্রে, অনুরোধে origin অন্তর্ভুক্ত থাকা সত্ত্বেও রেসপন্স বডি থেকে distanceMeters অনুপস্থিত থাকে। নিম্নলিখিত পরিস্থিতিগুলিতে এটি ঘটতে পারে:
-
routeপূর্বাভাসের জন্যdistanceMetersঅন্তর্ভুক্ত করা হয় না। - যখন
distanceMetersএর মান0হয়, তখন এটিকে অন্তর্ভুক্ত করা হয় না; প্রদত্তoriginথেকে ১ মিটারের কম দূরত্বের পূর্বাভাসের ক্ষেত্রে এমনটাই ঘটে।
ক্লায়েন্ট লাইব্রেরিগুলো যখন কোনো পার্স করা অবজেক্ট থেকে distanceMeters ফিল্ডটি পড়ার চেষ্টা করে, তখন এটি 0 মানসহ একটি ফিল্ড রিটার্ন করে। ব্যবহারকারীদের বিভ্রান্তি এড়াতে, তাদের কাছে শূন্য দূরত্ব প্রদর্শন করবেন না ।
অটোকমপ্লিট (নতুন) অপ্টিমাইজেশন
এই বিভাগে অটোকমপ্লিট (নতুন) পরিষেবাটির সর্বোত্তম ব্যবহার নিশ্চিত করার জন্য সেরা পদ্ধতিগুলো বর্ণনা করা হয়েছে।
এখানে কিছু সাধারণ নির্দেশিকা দেওয়া হলো:
- একটি কার্যকরী ইউজার ইন্টারফেস তৈরি করার সবচেয়ে দ্রুত উপায় হলো Maps JavaScript API Autocomplete (New) উইজেট , Places SDK for Android Autocomplete (New) উইজেট , অথবা Places SDK for iOS Autocomplete (New) উইজেট ব্যবহার করা।
- শুরু থেকেই অটোকমপ্লিট (নতুন) এর অপরিহার্য ডেটা ফিল্ডগুলো বুঝে নিন।
- অবস্থান পক্ষপাত এবং অবস্থান সীমাবদ্ধতা ক্ষেত্রগুলি ঐচ্ছিক, কিন্তু অটোকমপ্লিট পারফরম্যান্সের উপর এগুলির উল্লেখযোগ্য প্রভাব থাকতে পারে।
- এপিআই কোনো ত্রুটি ফেরত দিলে আপনার অ্যাপটি যেন সুষ্ঠুভাবে তার কার্যক্ষমতা হারায়, তা নিশ্চিত করতে এরর হ্যান্ডলিং ব্যবহার করুন।
- নিশ্চিত করুন যে, কোনো বিকল্প না থাকলে আপনার অ্যাপটি তা সামলে নেয় এবং ব্যবহারকারীদের চালিয়ে যাওয়ার একটি উপায় প্রদান করে।
ব্যয় অপ্টিমাইজেশনের সর্বোত্তম অনুশীলন
মৌলিক ব্যয় অপ্টিমাইজেশন
Autocomplete (New) পরিষেবা ব্যবহারের খরচ অপ্টিমাইজ করতে, Place Details (New) এবং Autocomplete (New) উইজেটগুলিতে ফিল্ড মাস্ক ব্যবহার করুন, যাতে শুধুমাত্র আপনার প্রয়োজনীয় Autocomplete (New) ডেটা ফিল্ডগুলিই ফেরত আসে।
উন্নত ব্যয় অপ্টিমাইজেশন
প্লেস ডিটেইলস (নিউ)-এর পরিবর্তে নির্বাচিত স্থান সম্পর্কে SKU: অটোকমপ্লিট রিকোয়েস্ট প্রাইসিং অ্যাক্সেস করতে এবং জিওকোডিং এপিআই ফলাফল অনুরোধ করতে অটোকমপ্লিট (নিউ)-এর প্রোগ্রাম্যাটিক বাস্তবায়ন বিবেচনা করুন। যদি নিম্নলিখিত উভয় শর্ত পূরণ হয়, তবে জিওকোডিং এপিআই সহ প্রতি-অনুরোধ প্রাইসিং প্রতি-সেশন (সেশন-ভিত্তিক) প্রাইসিং-এর চেয়ে বেশি সাশ্রয়ী হবে:
- ব্যবহারকারীর নির্বাচিত স্থানের শুধু অক্ষাংশ/দ্রাঘিমাংশ বা ঠিকানার প্রয়োজন হলে, জিওকোডিং এপিআই একটি 'প্লেস ডিটেইলস (নিউ)' কলের চেয়ে কম খরচে এই তথ্য সরবরাহ করে।
- যদি ব্যবহারকারীরা গড়ে চারটি বা তার কম 'অটোকমপ্লিট (নতুন) প্রেডিকশন' অনুরোধের মধ্যে একটি প্রেডিকশন নির্বাচন করেন, তাহলে প্রতি-সেশন মূল্যের চেয়ে প্রতি-অনুরোধ মূল্য নির্ধারণ বেশি সাশ্রয়ী হতে পারে।
আপনার অ্যাপ্লিকেশনের জন্য কি নির্বাচিত পূর্বাভাসের ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশ ছাড়া অন্য কোনো তথ্যের প্রয়োজন আছে?
হ্যাঁ, আরও বিস্তারিত তথ্যের প্রয়োজন।
স্থানের বিবরণের (নতুন) সাথে সেশন-ভিত্তিক অটোকমপ্লিট (নতুন) ব্যবহার করুন।
যেহেতু আপনার অ্যাপ্লিকেশনে স্থানের বিবরণ (নতুন), যেমন স্থানের নাম, ব্যবসার অবস্থা, বা খোলার সময় প্রয়োজন, তাই আপনার অটোকমপ্লিট (নতুন) বাস্তবায়নে প্রতি সেশনের জন্য একটি সেশন টোকেন (প্রোগ্রাম্যাটিকভাবে অথবা জাভাস্ক্রিপ্ট , অ্যান্ড্রয়েড বা আইওএস উইজেটে অন্তর্নির্মিত) এবং আপনি কোন স্থানের ডেটা ফিল্ড অনুরোধ করছেন তার উপর নির্ভর করে প্রযোজ্য প্লেসেস এসকিউইউ (Places SKUs) ব্যবহার করা উচিত ।
উইজেট বাস্তবায়ন
জাভাস্ক্রিপ্ট , অ্যান্ড্রয়েড বা আইওএস উইজেটগুলিতে সেশন ম্যানেজমেন্ট স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত থাকে। এর মধ্যে নির্বাচিত প্রেডিকশনের অটোকমপ্লিট (নতুন) রিকোয়েস্ট এবং প্লেস ডিটেইলস (নতুন) রিকোয়েস্ট উভয়ই অন্তর্ভুক্ত। আপনি যেন শুধুমাত্র আপনার প্রয়োজনীয় অটোকমপ্লিট (নতুন) ডেটা ফিল্ডগুলির জন্যই রিকোয়েস্ট করেন, তা নিশ্চিত করতে fields প্যারামিটারটি নির্দিষ্ট করে দিন।
প্রোগ্রাম্যাটিক বাস্তবায়ন
আপনার অটোকমপ্লিট (নতুন) অনুরোধের সাথে একটি সেশন টোকেন ব্যবহার করুন। নির্বাচিত প্রেডিকশন সম্পর্কে স্থানের বিবরণ (নতুন) অনুরোধ করার সময়, নিম্নলিখিত প্যারামিটারগুলি অন্তর্ভুক্ত করুন:
- অটোকমপ্লিট (নতুন) প্রতিক্রিয়া থেকে স্থানের আইডি
- অটোকমপ্লিট (নতুন) অনুরোধে ব্যবহৃত সেশন টোকেন
-
fieldsপ্যারামিটারটি আপনার প্রয়োজনীয় অটোকমপ্লিট (নতুন) ডেটা ফিল্ডগুলি নির্দিষ্ট করে।
না, শুধু ঠিকানা ও অবস্থান প্রয়োজন।
আপনার অটোকমপ্লিট (নতুন) ব্যবহারের পারফরম্যান্সের উপর নির্ভর করে, আপনার অ্যাপ্লিকেশনের জন্য প্লেস ডিটেইলস (নতুন)-এর চেয়ে জিওকোডিং এপিআই একটি বেশি সাশ্রয়ী বিকল্প হতে পারে। প্রতিটি অ্যাপ্লিকেশনের অটোকমপ্লিট (নতুন)-এর কার্যকারিতা নির্ভর করে ব্যবহারকারীরা কী প্রবেশ করাচ্ছেন, অ্যাপ্লিকেশনটি কোথায় ব্যবহার করা হচ্ছে এবং পারফরম্যান্স অপ্টিমাইজেশনের সেরা অনুশীলনগুলি প্রয়োগ করা হয়েছে কিনা তার উপর।
নিম্নলিখিত প্রশ্নের উত্তর দেওয়ার জন্য, আপনার অ্যাপ্লিকেশনে একটি অটোকমপ্লিট (নতুন) প্রেডিকশন নির্বাচন করার আগে একজন ব্যবহারকারী গড়ে কতগুলি অক্ষর টাইপ করেন তা বিশ্লেষণ করুন।
আপনার ব্যবহারকারীরা কি গড়ে চার বা তার কম অনুরোধে একটি অটোকমপ্লিট (নতুন) প্রেডিকশন নির্বাচন করেন?
হ্যাঁ
সেশন টোকেন ছাড়াই প্রোগ্রাম্যাটিকভাবে অটোকমপ্লিট (নতুন) প্রয়োগ করুন এবং নির্বাচিত স্থানের পূর্বাভাসের জন্য জিওকোডিং এপিআই কল করুন।
জিওকোডিং এপিআই ঠিকানা এবং অক্ষাংশ/দ্রাঘিমাংশের স্থানাঙ্ক সরবরাহ করে। চারটি অটোকমপ্লিট রিকোয়েস্ট এবং নির্বাচিত স্থানের পূর্বাভাস সম্পর্কে একটি জিওকোডিং এপিআই কল করার খরচ , প্রতি সেশনের অটোকমপ্লিট (নতুন) খরচের চেয়ে কম।¹
আপনার ব্যবহারকারীদের আরও কম অক্ষরের মধ্যে তাদের কাঙ্ক্ষিত পূর্বাভাস পেতে সাহায্য করার জন্য পারফরম্যান্সের সেরা অনুশীলনগুলো প্রয়োগ করার কথা বিবেচনা করুন।
না
স্থানের বিবরণের (নতুন) সাথে সেশন-ভিত্তিক অটোকমপ্লিট (নতুন) ব্যবহার করুন।
যেহেতু একজন ব্যবহারকারী একটি অটোকমপ্লিট (নতুন) প্রেডিকশন নির্বাচন করার আগে আপনার প্রত্যাশিত গড় অনুরোধের সংখ্যা প্রতি-সেশন মূল্যের খরচকে ছাড়িয়ে যায়, তাই আপনার অটোকমপ্লিট (নতুন) বাস্তবায়নে প্রতি সেশনে অটোকমপ্লিট (নতুন) অনুরোধ এবং এর সাথে সম্পর্কিত প্লেস ডিটেইলস (নতুন) অনুরোধ উভয়ের জন্যই একটি সেশন টোকেন ব্যবহার করা উচিত ।
উইজেট বাস্তবায়ন
জাভাস্ক্রিপ্ট , অ্যান্ড্রয়েড বা আইওএস উইজেটগুলিতে সেশন ম্যানেজমেন্ট স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত থাকে। এর মধ্যে নির্বাচিত প্রেডিকশনের অটোকমপ্লিট (নতুন) অনুরোধ এবং প্লেস ডিটেইলস (নতুন) অনুরোধ উভয়ই অন্তর্ভুক্ত। আপনি যেন শুধুমাত্র আপনার প্রয়োজনীয় ফিল্ডগুলোর জন্যই অনুরোধ করেন, তা নিশ্চিত করতে fields প্যারামিটারটি নির্দিষ্ট করে দিন।
প্রোগ্রাম্যাটিক বাস্তবায়ন
আপনার অটোকমপ্লিট (নতুন) অনুরোধের সাথে একটি সেশন টোকেন ব্যবহার করুন। নির্বাচিত প্রেডিকশন সম্পর্কে স্থানের বিবরণ (নতুন) অনুরোধ করার সময়, নিম্নলিখিত প্যারামিটারগুলি অন্তর্ভুক্ত করুন:
- অটোকমপ্লিট (নতুন) প্রতিক্রিয়া থেকে স্থানের আইডি
- অটোকমপ্লিট (নতুন) অনুরোধে ব্যবহৃত সেশন টোকেন
-
fieldsপ্যারামিটারটি ঠিকানা এবং জ্যামিতির মতো ক্ষেত্রগুলি নির্দিষ্ট করে।
অটোকমপ্লিট (নতুন) অনুরোধগুলি বিলম্বিত করার কথা বিবেচনা করুন।
আপনি এমন কৌশল অবলম্বন করতে পারেন, যেমন ব্যবহারকারী প্রথম তিন বা চারটি অক্ষর টাইপ না করা পর্যন্ত একটি অটোকমপ্লিট (নতুন) অনুরোধ বিলম্বিত করা, যাতে আপনার অ্যাপ্লিকেশনটি কম অনুরোধ করে। উদাহরণস্বরূপ, ব্যবহারকারী তৃতীয় অক্ষরটি টাইপ করার পর প্রতিটি অক্ষরের জন্য অটোকমপ্লিট (নতুন) অনুরোধ করার অর্থ হলো, যদি ব্যবহারকারী সাতটি অক্ষর টাইপ করার পর এমন একটি প্রেডিকশন নির্বাচন করে যার জন্য আপনি একটি জিওকোডিং এপিআই অনুরোধ করেন, তাহলে মোট খরচ হবে প্রতি অনুরোধে ৪টি অটোকমপ্লিট (নতুন) + জিওকোডিং ।
যদি অনুরোধে বিলম্ব ঘটিয়ে আপনার গড় প্রোগ্রাম্যাটিক অনুরোধের সংখ্যা চারের নিচে নামিয়ে আনা যায়, তাহলে আপনি জিওকোডিং এপিআই ইমপ্লিমেন্টেশন সহ পারফরম্যান্ট অটোকমপ্লিট (নতুন) -এর নির্দেশিকা অনুসরণ করতে পারেন। মনে রাখবেন যে, অনুরোধে বিলম্ব ব্যবহারকারীর কাছে লেটেন্সি হিসাবে অনুভূত হতে পারে, যিনি প্রতিটি নতুন কীস্ট্রোকের সাথে প্রেডিকশন দেখার আশা করতে পারেন।
আপনার ব্যবহারকারীরা যাতে কম অক্ষরের মধ্যে তাদের কাঙ্ক্ষিত পূর্বাভাস পেতে পারেন, সেজন্য পারফরম্যান্সের সর্বোত্তম অনুশীলনগুলো প্রয়োগ করার কথা বিবেচনা করুন।
খরচের জন্য, গুগল ম্যাপস প্ল্যাটফর্মের মূল্য তালিকা দেখুন।
কর্মক্ষমতার সর্বোত্তম অনুশীলন
নিম্নলিখিত নির্দেশিকাগুলি অটোকমপ্লিট (নতুন)-এর পারফরম্যান্স অপ্টিমাইজ করার উপায় বর্ণনা করে:
- আপনার অটোকমপ্লিট (নতুন) ইমপ্লিমেন্টেশনে দেশভিত্তিক সীমাবদ্ধতা, অবস্থানভিত্তিক পক্ষপাত এবং (প্রোগ্রামভিত্তিক বাস্তবায়নের জন্য) ভাষার পছন্দ যোগ করুন। উইজেটগুলোর ক্ষেত্রে ভাষার পছন্দের প্রয়োজন নেই, কারণ সেগুলো ব্যবহারকারীর ব্রাউজার বা মোবাইল ডিভাইস থেকে ভাষার পছন্দ বেছে নেয়।
- যদি অটোকমপ্লিট (নতুন)-এর সাথে একটি মানচিত্র থাকে, তাহলে আপনি মানচিত্র ভিউপোর্ট অনুযায়ী অবস্থান নির্ধারণ করতে পারেন।
- যখন কোনো ব্যবহারকারী অটোকমপ্লিট (নতুন) প্রেডিকশনগুলোর মধ্যে থেকে কোনো একটি বেছে নেন না—সাধারণত কারণ সেই প্রেডিকশনগুলোর কোনোটিই কাঙ্ক্ষিত ফলাফল-ঠিকানা নয়—তখন আপনি আরও প্রাসঙ্গিক ফলাফল পাওয়ার চেষ্টা করার জন্য ব্যবহারকারীর মূল ইনপুটটি পুনরায় ব্যবহার করতে পারেন:
- যদি আপনি আশা করেন যে ব্যবহারকারী শুধুমাত্র ঠিকানার তথ্য প্রবেশ করাবেন, তাহলে জিওকোডিং এপিআই (Geocoding API) -কে কল করার সময় ব্যবহারকারীর মূল ইনপুটটি পুনরায় ব্যবহার করুন।
- যদি ব্যবহারকারী নাম বা ঠিকানা দিয়ে কোনো নির্দিষ্ট স্থানের জন্য অনুসন্ধান করবেন বলে আশা করা হয়, তাহলে একটি ‘স্থানের বিবরণ (নতুন)’ অনুরোধ ব্যবহার করুন। যদি শুধুমাত্র একটি নির্দিষ্ট অঞ্চলে ফলাফল প্রত্যাশিত হয়, তাহলে ‘অবস্থান পক্ষপাত’ ব্যবহার করুন।
- ব্যবহারকারীরা কোনো ভবনের নির্দিষ্ট ইউনিট বা অ্যাপার্টমেন্টের মতো উপ-ঠিকানা ইনপুট করেন। উদাহরণস্বরূপ, চেক ঠিকানা "Stroupežnického 3191/17, Praha" ইনপুট করলে অটোকমপ্লিট (নতুন)-এ একটি আংশিক পূর্বাভাস পাওয়া যায়।
- ব্যবহারকারীরা নিউ ইয়র্ক সিটির "23-30 29th St, Queens" বা হাওয়াই দ্বীপপুঞ্জের কাওয়াই দ্বীপের "47-380 Kamehameha Hwy, Kaneohe"-এর মতো রোড-সেগমেন্ট প্রিফিক্স সহ ঠিকানা ইনপুট করছেন।
অবস্থান পক্ষপাত
একটি location প্যারামিটার এবং একটি radius প্যারামিটার পাস করে ফলাফলকে একটি নির্দিষ্ট এলাকার দিকে পক্ষপাতদুষ্ট করুন। এটি অটোকমপ্লিট (নতুন)-কে সংজ্ঞায়িত এলাকার মধ্যে ফলাফল দেখাতে অগ্রাধিকার দিতে নির্দেশ দেয়। সংজ্ঞায়িত এলাকার বাইরের ফলাফলও প্রদর্শিত হতে পারে। আপনি অন্তর্ভুক্ত অঞ্চল কোড includedRegionCodes প্যারামিটার ব্যবহার করে ফলাফল ফিল্টার করে শুধুমাত্র একটি নির্দিষ্ট দেশের মধ্যে থাকা স্থানগুলো দেখাতে পারেন।
অবস্থান সীমাবদ্ধ করা
locationRestriction প্যারামিটারটি দিয়ে ফলাফল একটি নির্দিষ্ট এলাকায় সীমাবদ্ধ করুন।
আপনি locationRestriction প্যারামিটারটি যোগ করে location এবং একটি radius প্যারামিটার দ্বারা সংজ্ঞায়িত অঞ্চলে ফলাফল সীমাবদ্ধ করতে পারেন। এটি Autocomplete (New)-কে শুধুমাত্র সেই অঞ্চলের মধ্যে থাকা ফলাফলগুলি ফেরত দিতে নির্দেশ দেয়।
চেষ্টা করে দেখুন!
এপিআই এক্সপ্লোরার আপনাকে নমুনা অনুরোধ করার সুযোগ দেয়, যাতে আপনি এপিআই এবং এর অপশনগুলোর সাথে পরিচিত হতে পারেন।
পৃষ্ঠার ডানদিকে থাকা API আইকনটি (api) নির্বাচন করুন।
ইচ্ছা হলে অনুরোধের প্যারামিটারগুলো সম্পাদনা করুন।
Execute বাটনটি নির্বাচন করুন। প্রদর্শিত ডায়ালগ বক্সে, অনুরোধটি করার জন্য আপনি যে অ্যাকাউন্টটি ব্যবহার করতে চান, সেটি বেছে নিন।
এপিআই এক্সপ্লোরার প্যানেলে, এপিআই এক্সপ্লোরার উইন্ডোটি প্রসারিত করতে ফুলস্ক্রিন আইকনটি নির্বাচন করুন।