জিওকোডিং হল ঠিকানা ("১৬০০ অ্যাম্ফিথিয়েটার পার্কওয়ে, মাউন্টেন ভিউ, ক্যালিফোর্নিয়া") থেকে ভৌগোলিক স্থানাঙ্কে (৩৭.৪২৩০২১, -১২২.০৮৩৭৩৯) পরিবর্তন করার প্রসেস, যা আপনি মার্কার বা ম্যাপে পজিশন সেট করার জন্য ব্যবহার করতে পারবেন। Google Maps Platform API জিওকোডিংয়ের জন্য দুটি পদ্ধতি প্রদান করে:
- ক্লায়েন্ট-সাইড জিওকোডিং, যা ব্রাউজারে এক্সিকিউট করা হয়, সাধারণত ব্যবহারকারীর অ্যাকশনের উত্তরে। Maps JavaScript API এমন ক্লাস প্রদান করে যা আপনার জন্য অনুরোধ করে। এই পদ্ধতি Maps JavaScript API ডকুমেন্টেশন-এ বর্ণনা করা হয়েছে।
- HTTP সার্ভার-সাইড জিওকোডিং, যা আপনার সার্ভারকে সরাসরি জিওকোডের জন্য Google-এর সার্ভারকে কোয়েরি করার অনুমতি দেয়। Geocoding API হল ওয়েব পরিষেবা যা এই কার্যকারিতা প্রদান করে। সাধারণত, আপনি এই পরিষেবাটি সার্ভার-সাইডে চলছে এমন অন্যান্য কোডের সাথে ইন্টিগ্রেট করেন। সার্ভার-সাইড জিওকোডিং Geocoding API ডকুমেন্টেশনে বর্ণনা করা হয়েছে।
ক্লায়েন্ট-সাইড ও সার্ভার-সাইড জিওকোডিংয়ের উদাহরণ
এখানে ক্লায়েন্ট-সাইড জিওকোডিং-এর একটি স্যাম্পেল দেওয়া হল যা একটি ঠিকানা নেয়, সেটিকে জিওকোড করে, ম্যাপের কেন্দ্রকে সেই লোকেশনে নিয়ে যায় এবং সেখানে একটি ম্যাপ মার্কার যোগ করে:
geocoder = new google.maps.Geocoder(); geocoder.geocode({ 'address': address }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } });
আরও উদাহরণের জন্য, Maps JavaScript API ডকুমেন্টেশন দেখুন।
Geocoding API v4-এ সার্ভার-সাইড জিওকোডিং অনুরোধ করার জন্য Python ব্যবহার করার একটি উদাহরণ এখানে দেওয়া হল:
import json import urllib.request address = "1600+Amphitheatre+Parkway,+Mountain+View,+CA" key = "my-key-here" url = f"https://geocode.googleapis.com/v4/geocode/address/{address}" headers = {"X-Goog-Api-Key": key} req = urllib.request.Request(url, headers=headers) with urllib.request.urlopen(req) as response: result = json.loads(response.read().decode("utf-8"))
এর ফলে নিম্নলিখিত কন্টেন্ট সহ একটি JSON অবজেক্ট তৈরি হয়:
{ "results": [ { "place": "places/ChIJiSSC8QK6j4AR98Thup8mqTc", "placeId": "ChIJiSSC8QK6j4AR98Thup8mqTc", "location": { "latitude": 37.4224864, "longitude": -122.0855962 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.4211700197085, "longitude": -122.08691558029149 }, "high": { "latitude": 37.4238679802915, "longitude": -122.08421761970851 } }, "bounds": { "low": { "latitude": 37.4221145, "longitude": -122.0860002 }, "high": { "latitude": 37.4228775, "longitude": -122.085133 } }, "formattedAddress": "Google Building 41, 1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94043-1351", "administrativeArea": "CA", "locality": "Mountain View", "addressLines": [ "1600 Amphitheatre Pkwy" ] }, "addressComponents": [ { "longText": "Google Building 41", "shortText": "Google Building 41", "types": [ "premise" ], "languageCode": "en" }, { "longText": "1600", "shortText": "1600", "types": [ "street_number" ] }, { "longText": "Amphitheatre Parkway", "shortText": "Amphitheatre Pkwy", "types": [ "route" ], "languageCode": "en" }, { "longText": "Mountain View", "shortText": "Mountain View", "types": [ "locality", "political" ], "languageCode": "en" }, { "longText": "Santa Clara County", "shortText": "Santa Clara County", "types": [ "administrative_area_level_2", "political" ], "languageCode": "en" }, { "longText": "California", "shortText": "CA", "types": [ "administrative_area_level_1", "political" ], "languageCode": "en" }, { "longText": "United States", "shortText": "US", "types": [ "country", "political" ], "languageCode": "en" }, { "longText": "94043", "shortText": "94043", "types": [ "postal_code" ] }, { "longText": "1351", "shortText": "1351", "types": [ "postal_code_suffix" ] } ], "types": [ "premise", "street_address" ] } ] }
আরও উদাহরণের জন্য, Geocoding API v4 এক নজরে এবং Geocode an address নির্দেশিকা দেখুন।
কোটা ও খরচ সংক্রান্ত বিষয়
জিওকোডিংয়ের খরচ, কোটা এবং রেটের সীমা এই ডকুমেন্টে উল্লেখ করা স্ট্র্যাটেজিকে পরিচালনা করে।
খরচ
জিওকোডিং অনুরোধের জন্য কোটা-প্রতি-দিন (QPD) সীমা ব্যবহার করা হয় না। পরিবর্তে, প্রতিটি জিওকোডিং অনুরোধ, তা ব্রাউজারের মাধ্যমে ক্লায়েন্ট-সাইড হোক বা Geocoding API ওয়েব পরিষেবার মাধ্যমে সার্ভার-সাইড হোক, প্রতি-অনুরোধের মূল্যে বিল করা হয়। ব্যবহারের খরচ ম্যানেজ করতে, আপনার ব্যবহারের সীমা ও কোটা ম্যানেজ করার কথা বিবেচনা করুন।
রেট লিমিট
জিওকোডিং পরিষেবার রেট ৩,০০০ QPM (প্রতি মিনিটে কোয়েরি) পর্যন্ত সীমিত, ক্লায়েন্ট-সাইড ও সার্ভার-সাইড কোয়েরির যোগফল হিসেবে এটি গণনা করা হয়।
নির্দিষ্ট সময় অন্তর ক্লায়েন্ট-সাইড জিওকোডিং অনুরোধ রান করার সময়, যেমন মোবাইল অ্যাপে, আপনার সব ব্যবহারকারী একই সময়ে অনুরোধ করলে (যেমন, প্রতি মিনিটের একই সেকেন্ডে সবাই) আপনার অনুরোধে সমস্যা দেখা দিতে পারে। এটি এড়াতে, নিম্নলিখিতগুলির মধ্যে একটি বিবেচনা করুন:
- আপনার অনুরোধে (জিটার) র্যান্ডম ইন্টারভাল যোগ করুন। আপনার সম্পূর্ণ ব্যবহারকারী বেস জুড়ে অনুরোধগুলি র্যান্ডম কিনা তা নিশ্চিত করুন।
- Android-এর জন্য ডেভেলপ করলে, ইনএক্স্যাক্ট রিপিটিং অ্যালার্ম ব্যবহার করুন।
- Android-এর জন্য ডেভেলপ করলে, উপযুক্ত লোকেশন স্ট্র্যাটেজি বেছে নিন।
ক্যাশ করা হচ্ছে
ক্যাশিং সম্পর্কে Geocoding API নীতি দেখুন।
v4-এ সার্ভার-সাইড বনাম ক্লায়েন্ট-সাইড আর্কিটেকচার
Geocoding API v4 (SearchDestinations, GeocodeAddress, GeocodeLocation এবং GeocodePlace সহ) সার্ভার-টু-সার্ভার API হিসেবে ডিজাইন করা হয়েছে। আপনার ব্যাকএন্ড সার্ভার থেকে v4 এন্ডপয়েন্ট কল করলে গুরুত্বপূর্ণ সুবিধা পাওয়া যায়:
- হাইপারলোকাল অ্যারাইভাল ইন্টেলিজেন্স:
SearchDestinationsপদ্ধতি (POST /v4/geocode/destinations) শুধুমাত্র সার্ভার-সাইড REST বা gRPC অনুরোধ ব্যবহার করে উপলভ্য এবং বিল্ডিংয়ের প্রবেশপথ, রুট করা যায় এমন নেভিগেশন পয়েন্ট, বিল্ডিংয়ের আউটলাইন এবং কাছাকাছি ল্যান্ডমার্ক রিটার্ন করে যা ক্লায়েন্ট-সাইড ব্রাউজার জিওকোডারে উপলভ্য নয়। - উন্নত API নিরাপত্তা: সার্ভার-সাইড কল আপনার API কী এবং OAuth টোকেনকে ক্লায়েন্ট ব্রাউজারে প্রকাশ হওয়া থেকে রক্ষা করে। API নিরাপত্তা দেখুন।
- রেসপন্স ফিল্ড মাস্ক: সার্ভার-সাইড v4 এন্ডপয়েন্ট ফিল্ড মাস্ক সাপোর্ট করে, যা আপনাকে পেলোড সাইজ এবং লেটেন্সি কমানোর জন্য আপনার অ্যাপ্লিকেশনের প্রয়োজনীয় ফিল্ডের জন্য অনুরোধ করার অনুমতি দেয়।
ক্লায়েন্ট-সাইড ব্রাউজার লুকআপ কখন ব্যবহার করতে হবে
লাইভ কিস্ট্রোকে রেসপন্স করা ইন্টার্যাক্টিভ ব্রাউজার অ্যাপ্লিকেশনের জন্য, ক্লায়েন্ট-সাইড জায়গা অটোমেটিক সম্পূর্ণ করা (ব্যবহারকারীর ইনপুট থেকে অস্পষ্টতা দূর করতে এবং একটি প্লেস আইডি পেতে) ফিচারকে SearchDestinations বা GeocodePlace-এ ব্যাকএন্ড কলের সাথে একত্রিত করার কথা বিবেচনা করুন যাতে হাইপারলোকাল বিবরণ বা কোঅর্ডিনেট নিরাপদে পাওয়া যায়।