রিভার্স জিওকোডিং মানচিত্রের কোনো অবস্থানকে মানুষের পাঠযোগ্য ঠিকানায় রূপান্তরিত করে। এক্ষেত্রে আপনি কোনো স্থানের অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্কের মাধ্যমে মানচিত্রের অবস্থানটি প্রকাশ করেন।
যখন আপনি কোনো অবস্থানকে রিভার্স জিওকোড করেন, তখন প্রতিক্রিয়াটিতে নিম্নলিখিত বিষয়গুলো থাকে:
- ঠিকানার স্থান আইডি
- ঠিকানার প্লাস কোডগুলি
- ঠিকানার বিবরণ
এই এপিআই সবচেয়ে সুনির্দিষ্ট রাস্তার ঠিকানা থেকে শুরু করে পাড়া, শহর, কাউন্টি এবং রাজ্যের মতো কম সুনির্দিষ্ট রাজনৈতিক সত্তা পর্যন্ত বিভিন্ন ধরণের ঠিকানা ফেরত দেয়। সবচেয়ে সঠিক ঠিকানাটি সাধারণত প্রথম ফলাফল হিসেবে আসে। আপনি যদি একটি নির্দিষ্ট ধরণের ঠিকানা মেলাতে চান, তাহলে types প্যারামিটারটি ব্যবহার করুন।
বিপরীত ভূ-কোডিং অনুরোধ
একটি রিভার্স জিওকোডিং রিকোয়েস্ট হলো একটি HTTP GET রিকোয়েস্ট। আপনি অবস্থানটি একটি অসংগঠিত স্ট্রিং হিসাবে নির্দিষ্ট করতে পারেন:
https://geocode.googleapis.com/v4beta/geocode/location/LATITUDE,LONGITUDE
অথবা কোয়েরি প্যারামিটার দ্বারা উপস্থাপিত অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্কের একটি কাঠামোগত সেট হিসাবে:
https://geocode.googleapis.com/v4beta/geocode/location?location.latitude=LATITUDE&location.longitude=LONGITUDE
এইচটিএমএল ফর্মে ধারণ করা অবস্থানের উপাদানগুলো প্রক্রিয়াকরণের সময় আপনি সাধারণত স্ট্রাকচার্ড ফরম্যাট ব্যবহার করেন।
অন্যান্য সমস্ত প্যারামিটার URL প্যারামিটার হিসাবে পাঠান অথবা, API কী বা ফিল্ড মাস্কের মতো প্যারামিটারগুলো GET অনুরোধের অংশ হিসাবে হেডারে পাঠান। উদাহরণস্বরূপ:
একটি অসংগঠিত অবস্থান স্ট্রিং পাস করুন
একটি অসংগঠিত অবস্থান হলো অক্ষাংশ এবং দ্রাঘিমাংশের স্থানাঙ্কের একটি কমা-বিভক্ত স্ট্রিং হিসাবে বিন্যস্ত একটি অবস্থান:
https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338?key=API_KEY
অথবা কার্ল কমান্ডে:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338"
একটি কাঠামোগত অবস্থান অতিক্রম করুন
LatLng টাইপের location কোয়েরি প্যারামিটার ব্যবহার করে কাঠামোগত অবস্থান নির্দিষ্ট করুন। LatLng অবজেক্টটি আপনাকে অক্ষাংশ এবং দ্রাঘিমাংশকে পৃথক কোয়েরি প্যারামিটার হিসাবে নির্দিষ্ট করার সুযোগ দেয়:
https://geocode.googleapis.com/v4beta/geocode/location?location.latitude=37.4225508&location.longitude=-122.0846338 &key=API_KEY
অনুরোধ করতে OAuth ব্যবহার করুন
জিওকোডিং এপিআই ভি৪ প্রমাণীকরণের জন্য ওঅথ ২.০ সমর্থন করে। জিওকোডিং এপিআই-এর সাথে ওঅথ ব্যবহার করতে হলে, ওঅথ টোকেনটিকে অবশ্যই সঠিক স্কোপ প্রদান করতে হবে। রিভার্স জিওকোডিং-এর জন্য জিওকোডিং এপিআই নিম্নলিখিত স্কোপগুলো সমর্থন করে:
-
https://www.googleapis.com/auth/maps-platform.geocode— সকল জিওকোডিং এপিআই পদ্ধতির সাথে ব্যবহার করুন। -
https://www.googleapis.com/auth/maps-platform.geocode.location— শুধুমাত্র রিভার্স জিওকোডিং-এর জন্যGeocodeLocationসাথে ব্যবহার করুন।
এছাড়াও, আপনি সমস্ত জিওকোডিং এপিআই মেথডের জন্য সাধারণ https://www.googleapis.com/auth/cloud-platform স্কোপটি ব্যবহার করতে পারেন। এই স্কোপটি ডেভেলপমেন্টের সময় উপযোগী, কিন্তু প্রোডাকশনের জন্য নয়, কারণ এটি একটি সাধারণ স্কোপ যা সমস্ত মেথডে অ্যাক্সেস দেয়।
আরও তথ্য ও উদাহরণের জন্য, Use OAuth দেখুন।
বিপরীত ভূ-কোডিং প্রতিক্রিয়া
রিভার্স জিওকোডিং একটি GeocodeLocationResponse অবজেক্ট রিটার্ন করে, যাতে নিম্নলিখিত বিষয়গুলো থাকে:
স্থানটিকে প্রতিনিধিত্বকারী
GeocodeResultঅবজেক্টেরresultsঅ্যারে।রিভার্স জিওকোডার '
resultsঅ্যারেতে একাধিক ফলাফল ফেরত দেয়। এই ফলাফলগুলো শুধু ডাক ঠিকানা নয়, বরং কোনো স্থানের ভৌগোলিক নাম দেওয়ার যেকোনো উপায়। উদাহরণস্বরূপ, শিকাগো শহরের কোনো একটি বিন্দুকে জিওকোড করার সময়, জিওকোড করা বিন্দুটিকে রাস্তার ঠিকানা, শহর (শিকাগো), রাজ্য (ইলিনয়) বা দেশ (মার্কিন যুক্তরাষ্ট্র) হিসেবে উল্লেখ করা যেতে পারে। জিওকোডারের কাছে এগুলো সবই 'ঠিকানা'। রিভার্স জিওকোডার এই ধরনের যেকোনো ফলাফলকেই বৈধ ফলাফল হিসেবে ফেরত দেয়।plusCodeটাইপেরPlusCodeফিল্ডটিতে সেই প্লাস কোডটি থাকে যা অনুরোধের অক্ষাংশ এবং দ্রাঘিমাংশকে সবচেয়ে ভালোভাবে আনুমানিক করে। এছাড়াও,resultsঅ্যারের প্রতিটি উপাদানে একটি প্লাস কোড থাকে। ডিকোড করা প্লাস কোড এবং অনুরোধ বিন্দুর মধ্যে দূরত্ব ১০ মিটারের কম।
সম্পূর্ণ JSON অবজেক্টটি নিম্নলিখিত আকারে থাকে:
{ "results": [ { "place": "//places.googleapis.com/places/ChIJV-FZF7i7j4ARo4ZOUoecZFU", "placeId": "ChIJV-FZF7i7j4ARo4ZOUoecZFU", "location": { "latitude": 37.422588300000008, "longitude": -122.0846489 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.421239319708512, "longitude": -122.0859978802915 }, "high": { "latitude": 37.423937280291511, "longitude": -122.08329991970851 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "addressComponents": [ { "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" ] } ], "types": [ "street_address" ], "plusCode": { "globalCode": "849VCW83+PM", "compoundCode": "CW83+PM Mountain View, CA, USA" } }, { "place": "//places.googleapis.com/places/ChIJj61dQgK6j4AR4GeTYWZsKWw", "placeId": "ChIJj61dQgK6j4AR4GeTYWZsKWw", "location": { "latitude": 37.4220541, "longitude": -122.08532419999999 }, "granularity": "ROOFTOP", "viewport": { "low": { "latitude": 37.4207051197085, "longitude": -122.08667318029148 }, "high": { "latitude": 37.423403080291493, "longitude": -122.08397521970851 } }, "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "addressComponents": [ { "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" ] } ], "types": [ "establishment", "point_of_interest" ], "plusCode": { "globalCode": "849VCWC7+RV", "compoundCode": "CWC7+RV Mountain View, CA, USA" } }, ... ], "plusCode": { "globalCode": "849VCWF8+24H", "compoundCode": "CWF8+24H Mountain View, CA, USA" } }
প্রয়োজনীয় প্যারামিটার
অবস্থান
অক্ষাংশ এবং দ্রাঘিমাংশের স্থানাঙ্ক, যা নির্দেশ করে আপনি নিকটতম, সহজে পাঠযোগ্য ঠিকানাটি কোথায় চান।
ঐচ্ছিক পরামিতি
ভাষা কোড
যে ভাষায় ফলাফল ফেরত দেওয়া হয়।
- সমর্থিত ভাষাগুলোর তালিকা দেখুন। গুগল প্রায়শই সমর্থিত ভাষাগুলো হালনাগাদ করে, তাই এই তালিকাটি সম্পূর্ণ নাও হতে পারে।
-
languageCodeসরবরাহ করা না হলে, API ডিফল্টরূপেenব্যবহার করে। আপনি যদি একটি অবৈধ ভাষা কোড নির্দিষ্ট করেন, তাহলে API একটিINVALID_ARGUMENTত্রুটি ফেরত দেয়। - এপিআইটি ব্যবহারকারী এবং স্থানীয় বাসিন্দা উভয়ের জন্য পাঠযোগ্য একটি রাস্তার ঠিকানা প্রদান করার জন্য যথাসাধ্য চেষ্টা করে। সেই লক্ষ্য অর্জনের জন্য, এটি পছন্দের ভাষাটি অনুসরণ করে রাস্তার ঠিকানাগুলো স্থানীয় ভাষায় ফেরত দেয় এবং প্রয়োজনে ব্যবহারকারীর পাঠযোগ্য লিপিতে তা প্রতিবর্ণীকরণ করে। অন্য সব ঠিকানা পছন্দের ভাষাতেই ফেরত দেওয়া হয়। ঠিকানার সমস্ত উপাদান একই ভাষায় ফেরত দেওয়া হয়, যা প্রথম উপাদানটি থেকে বেছে নেওয়া হয়।
- পছন্দের ভাষায় কোনো নাম উপলব্ধ না থাকলে, এপিআই সবচেয়ে কাছাকাছি মিল থাকা নামটি ব্যবহার করে।
- পছন্দের ভাষাটি এপিআই দ্বারা ফেরত দেওয়া ফলাফলের সেট এবং সেগুলোর ফেরত দেওয়ার ক্রমের উপর সামান্য প্রভাব ফেলে। জিওকোডার ভাষার উপর নির্ভর করে সংক্ষিপ্ত রূপগুলোকে ভিন্নভাবে ব্যাখ্যা করে, যেমন রাস্তার প্রকারের সংক্ষিপ্ত রূপ, বা এমন প্রতিশব্দ যা একটি ভাষায় বৈধ হলেও অন্য ভাষায় নয়।
অঞ্চল কোড
অঞ্চল কোডটি একটি দুই-অক্ষরের CLDR কোড মান। এর কোনো ডিফল্ট মান নেই। বেশিরভাগ CLDR কোড ISO 3166-1 কোডের অনুরূপ।
কোনো ঠিকানা জিওকোড করার সময় (ফরওয়ার্ড জিওকোডিং) , এই প্যারামিটারটি নির্দিষ্ট অঞ্চলের জন্য পরিষেবা থেকে প্রাপ্ত ফলাফলকে প্রভাবিত করতে পারে, কিন্তু সম্পূর্ণরূপে সীমাবদ্ধ করতে পারে না। কোনো অবস্থান বা স্থান জিওকোড করার সময় (রিভার্স জিওকোডিং বা প্লেস জিওকোডিং) , এই প্যারামিটারটি ঠিকানাটিকে ফরম্যাট করার জন্য ব্যবহার করা যেতে পারে। সব ক্ষেত্রেই, এই প্যারামিটারটি প্রযোজ্য আইনের উপর ভিত্তি করে ফলাফলকে প্রভাবিত করতে পারে।
দানাদারত্ব
Granularityদ্বারা সংজ্ঞায়িত এক বা একাধিক অবস্থানগত সূক্ষ্মতা, যা পৃথক কোয়েরি প্যারামিটার হিসাবে নির্দিষ্ট করা হয়। আপনি যদি একাধিকgranularityপ্যারামিটার নির্দিষ্ট করেন, তাহলে API সেই সমস্ত ঠিকানা ফেরত দেবে যা যেকোনো একটি সূক্ষ্মতার সাথে মেলে।granularityপ্যারামিটারটি অনুসন্ধানকে নির্দিষ্ট অবস্থান গ্র্যানুলারিটির মধ্যে সীমাবদ্ধ রাখে না। বরং,granularityএকটি অনুসন্ধান-পরবর্তী ফিল্টার হিসেবে কাজ করে। এপিআই নির্দিষ্টlocationজন্য সমস্ত ফলাফল সংগ্রহ করে, তারপর সেই ফলাফলগুলো বাদ দিয়ে দেয় যেগুলো নির্দিষ্ট অবস্থান গ্র্যানুলারিটির সাথে মেলে না।আপনি যদি
typesএবংgranularityউভয়ই নির্দিষ্ট করেন, তাহলে এপিআই কেবল সেই ফলাফলগুলিই ফেরত দেবে যা উভয়ের সাথে মেলে। উদাহরণস্বরূপ:https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338?granularity=ROOFTOP
&granularity=GEOMETRIC_CENTER &key=API_KEY প্রকার
এক বা একাধিক ঠিকানার ধরন, যা পৃথক কোয়েরি প্যারামিটার হিসাবে নির্দিষ্ট করা হয়। আপনি যদি একাধিক
typesপ্যারামিটার নির্দিষ্ট করেন, তাহলে API সেই সমস্ত ঠিকানা ফেরত দেবে যা যেকোনো একটি ধরনের সাথে মেলে।`
typesপ্যারামিটারটি অনুসন্ধানকে নির্দিষ্ট ঠিকানার ধরণ(গুলি)তে সীমাবদ্ধ করে না। বরং,typesএকটি অনুসন্ধান-পরবর্তী ফিল্টার হিসেবে কাজ করে। এপিআইটি নির্দিষ্ট অবস্থানের জন্য সমস্ত ফলাফল সংগ্রহ করে, তারপর সেই ফলাফলগুলি বাদ দেয় যেগুলি নির্দিষ্ট ঠিকানার ধরণ(গুলি)র সাথে মেলে না।আপনি যদি
typesএবংgranularityউভয়ই নির্দিষ্ট করেন, তাহলে এপিআই কেবল সেই ফলাফলগুলিই ফেরত দেবে যা উভয়ের সাথে মেলে। উদাহরণস্বরূপ:https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338?types=administrative_area_level_2
&types=locality &key=API_KEY নিম্নলিখিত মানগুলি সমর্থিত:
ঠিকানার প্রকারভেদ এবং ঠিকানার উপাদানের প্রকারভেদ
রেসপন্সের
GeocodeResultবডিতে থাকাtypesঅ্যারেটি ঠিকানার ধরন নির্দেশ করে। ঠিকানার ধরনের উদাহরণ হলো রাস্তার ঠিকানা, দেশ বা রাজনৈতিক সত্তা।GeocodeResultবডিরAddressComponentsফিল্ডে থাকাtypesঅ্যারেটি ঠিকানার প্রতিটি অংশের ধরন নির্দেশ করে। এর উদাহরণ হলো রাস্তার নম্বর বা দেশ।ঠিকানার একাধিক প্রকার থাকতে পারে। এই প্রকারগুলোকে 'ট্যাগ' হিসেবে বিবেচনা করা যেতে পারে। উদাহরণস্বরূপ, অনেক শহরকে
politicalএবংlocalityপ্রকার দিয়ে ট্যাগ করা হয়।অ্যাড্রেস টাইপ এবং অ্যাড্রেস কম্পোনেন্ট টাইপ উভয় অ্যারেতেই নিম্নলিখিত টাইপগুলো সমর্থিত এবং ফেরত দেওয়া হয়:
ঠিকানার ধরণ বর্ণনা street_addressএকটি সঠিক রাস্তার ঠিকানা। routeএকটি নামযুক্ত রুট (যেমন "ইউএস ১০১")। intersectionএকটি প্রধান সংযোগস্থল, যা সাধারণত দুটি প্রধান সড়কের হয়ে থাকে। politicalএকটি রাজনৈতিক সত্তা। সাধারণত, এই প্রকারটি কোনো বেসামরিক প্রশাসনের একটি সমষ্টিকে বোঝায়। countryজাতীয় রাজনৈতিক সত্তা, এবং এটি সাধারণত জিওকোডার দ্বারা প্রত্যাবর্তিত সর্বোচ্চ ক্রমের প্রকার। administrative_area_level_1দেশ স্তরের নিচের একটি প্রথম-স্তরের বেসামরিক সত্তা। মার্কিন যুক্তরাষ্ট্রের মধ্যে, এই প্রশাসনিক স্তরগুলো হলো রাজ্য। সব দেশে এই প্রশাসনিক স্তরগুলো দেখা যায় না। বেশিরভাগ ক্ষেত্রে, administrative_area_level_1সংক্ষিপ্ত নামগুলো ISO 3166-2 উপবিভাগ এবং অন্যান্য বহুল প্রচলিত তালিকার সাথে ঘনিষ্ঠভাবে মিলে যাবে; তবে এটি নিশ্চিত নয়, কারণ আমাদের জিওকোডিং ফলাফল বিভিন্ন ধরনের সংকেত এবং অবস্থান তথ্যের উপর ভিত্তি করে তৈরি হয়।administrative_area_level_2দেশ পর্যায়ের নিচের একটি দ্বিতীয়-স্তরের বেসামরিক সত্তা। মার্কিন যুক্তরাষ্ট্রের মধ্যে, এই প্রশাসনিক স্তরগুলো হলো কাউন্টি। সব দেশে এই প্রশাসনিক স্তরগুলো দেখা যায় না। administrative_area_level_3দেশ পর্যায়ের নিম্নতর একটি তৃতীয়-স্তরের বেসামরিক সত্তা। এই প্রকারটি একটি ক্ষুদ্র বেসামরিক বিভাগকে নির্দেশ করে। সকল রাষ্ট্রে এই প্রশাসনিক স্তরগুলো দেখা যায় না। administrative_area_level_4দেশ পর্যায়ের নিচে চতুর্থ-স্তরের একটি বেসামরিক সত্তা। এই প্রকারটি একটি ক্ষুদ্র বেসামরিক বিভাগকে নির্দেশ করে। সব দেশে এই প্রশাসনিক স্তরগুলো দেখা যায় না। administrative_area_level_5দেশ পর্যায়ের নিচে পঞ্চম স্তরের একটি বেসামরিক সত্তা। এই প্রকারটি একটি ক্ষুদ্র বেসামরিক বিভাগকে নির্দেশ করে। সব দেশে এই প্রশাসনিক স্তরগুলো দেখা যায় না। administrative_area_level_6দেশ পর্যায়ের নিচে ষষ্ঠ-স্তরের একটি বেসামরিক সত্তা। এই প্রকারটি একটি ক্ষুদ্র বেসামরিক বিভাগকে নির্দেশ করে। সব দেশে এই প্রশাসনিক স্তরগুলো দেখা যায় না। administrative_area_level_7দেশ পর্যায়ের নিচে সপ্তম-স্তরের একটি বেসামরিক সত্তা। এই প্রকারটি একটি ক্ষুদ্র বেসামরিক বিভাগকে নির্দেশ করে। সব দেশে এই প্রশাসনিক স্তরগুলো দেখা যায় না। colloquial_areaসত্তাটির একটি বহুল ব্যবহৃত বিকল্প নাম। localityএকটি নিগমিত শহর বা নগর রাজনৈতিক সত্তা। sublocalityএলাকার নিম্নস্তরের একটি প্রথম-স্তরের বেসামরিক সত্তা। কিছু অবস্থানের জন্য এটি অতিরিক্ত প্রকারগুলোর মধ্যে একটি পেতে পারে: sublocality_level_1থেকেsublocality_level_5। প্রতিটি উপ-এলাকা স্তর একটি বেসামরিক সত্তা। বৃহত্তর সংখ্যা একটি ছোট ভৌগোলিক এলাকা নির্দেশ করে।neighborhoodএকটি নামযুক্ত এলাকা। premiseএকটি নামযুক্ত স্থান, যা সাধারণত একটি সাধারণ নামে পরিচিত কোনো ভবন বা একাধিক ভবন নিয়ে গঠিত। subpremiseপ্রাঙ্গণ স্তরের নিচে অবস্থিত একটি ঠিকানাযোগ্য সত্তা, যেমন অ্যাপার্টমেন্ট, ইউনিট বা স্যুইট। plus_codeঅক্ষাংশ ও দ্রাঘিমাংশ থেকে প্রাপ্ত একটি এনকোডেড অবস্থান নির্দেশক। যেসব স্থানে রাস্তার ঠিকানা নেই (যেমন যেখানে ভবনগুলোর নম্বর দেওয়া নেই বা রাস্তাগুলোর নাম নেই), সেখানে রাস্তার ঠিকানার বিকল্প হিসেবে প্লাস কোড ব্যবহার করা যেতে পারে। বিস্তারিত জানতে https://plus.codes দেখুন। postal_codeদেশের অভ্যন্তরে ডাকযোগে চিঠি পাঠানোর ঠিকানা হিসেবে পোস্টাল কোড ব্যবহার করা হয়। natural_featureএকটি উল্লেখযোগ্য প্রাকৃতিক বৈশিষ্ট্য। airportএকটি বিমানবন্দর। parkএকটি নামযুক্ত পার্ক। point_of_interestএকটি নামযুক্ত দর্শনীয় স্থান। সাধারণত, এই "পিওআই" (POI) গুলো হলো স্থানীয় গুরুত্বপূর্ণ স্থান, যেগুলোকে সহজে অন্য কোনো শ্রেণিতে ফেলা যায় না, যেমন "এম্পায়ার স্টেট বিল্ডিং" বা "আইফেল টাওয়ার"। প্রকারের একটি খালি তালিকা নির্দেশ করে যে নির্দিষ্ট ঠিকানা উপাদানটির (উদাহরণস্বরূপ, ফ্রান্সে Lieu-dit) জন্য কোনো পরিচিত প্রকার নেই।