রিভার্স জিওকোডিং মানচিত্রের কোনো অবস্থানকে মানুষের পাঠযোগ্য ঠিকানায় রূপান্তরিত করে। এক্ষেত্রে আপনি কোনো স্থানের অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্কের মাধ্যমে মানচিত্রের অবস্থানটি প্রকাশ করেন।
যখন আপনি কোনো অবস্থানকে রিভার্স জিওকোড করেন, তখন প্রতিক্রিয়াটিতে নিম্নলিখিত বিষয়গুলো থাকে:
- ঠিকানার স্থান আইডি
- ঠিকানার প্লাস কোডগুলি
- ঠিকানার বিবরণ
এই এপিআই সবচেয়ে সুনির্দিষ্ট রাস্তার ঠিকানা থেকে শুরু করে পাড়া, শহর, কাউন্টি এবং রাজ্যের মতো কম সুনির্দিষ্ট রাজনৈতিক সত্তা পর্যন্ত বিভিন্ন ধরণের ঠিকানা ফেরত দেয়। সবচেয়ে সঠিক ঠিকানাটি সাধারণত প্রথম ফলাফল হিসেবে আসে। আপনি যদি একটি নির্দিষ্ট ধরণের ঠিকানা মেলাতে চান, তাহলে types প্যারামিটারটি ব্যবহার করুন।
বিপরীত ভূ-কোডিং অনুরোধ
একটি রিভার্স জিওকোডিং রিকোয়েস্ট হলো একটি HTTP GET রিকোয়েস্ট। আপনি অবস্থানটি একটি অসংগঠিত স্ট্রিং হিসাবে নির্দিষ্ট করতে পারেন:
https://geocode.googleapis.com/v4/geocode/location/LATITUDE,LONGITUDE
অথবা কোয়েরি প্যারামিটার দ্বারা উপস্থাপিত অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্কের একটি কাঠামোগত সেট হিসাবে:
https://geocode.googleapis.com/v4/geocode/location?location.latitude=LATITUDE&location.longitude=LONGITUDE
এইচটিএমএল ফর্মে ধারণ করা অবস্থানের উপাদানগুলো প্রক্রিয়াকরণের সময় আপনি সাধারণত স্ট্রাকচার্ড ফরম্যাট ব্যবহার করেন।
অন্যান্য সমস্ত প্যারামিটার URL প্যারামিটার হিসাবে পাঠান অথবা, API কী বা ফিল্ড মাস্কের মতো প্যারামিটারগুলো GET অনুরোধের অংশ হিসাবে হেডারে পাঠান। উদাহরণস্বরূপ:
একটি অসংগঠিত অবস্থান স্ট্রিং পাস করুন
একটি অসংগঠিত অবস্থান হলো অক্ষাংশ এবং দ্রাঘিমাংশের স্থানাঙ্কের একটি কমা-বিভক্ত স্ট্রিং হিসাবে বিন্যস্ত একটি অবস্থান:
https://geocode.googleapis.com/v4/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/v4/geocode/location/37.4225508,-122.0846338"
একটি কাঠামোগত অবস্থান অতিক্রম করুন
LatLng টাইপের location কোয়েরি প্যারামিটার ব্যবহার করে কাঠামোগত অবস্থান নির্দিষ্ট করুন। LatLng অবজেক্টটি আপনাকে অক্ষাংশ এবং দ্রাঘিমাংশকে পৃথক কোয়েরি প্যারামিটার হিসাবে নির্দিষ্ট করার সুযোগ দেয়:
https://geocode.googleapis.com/v4/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অ্যারে।Geocoding API-এর প্রতিক্রিয়াগুলিতে
GeocodeResultমধ্যে দুটি প্রধান স্থানেtypesঅ্যারে অন্তর্ভুক্ত থাকে:-
GeocodeResult.types: এই অ্যারেটি ফলাফলের সামগ্রিক ধরণ নির্দেশ করে। সম্ভাব্য মানগুলো Place Types (New) পৃষ্ঠার টেবিল A এবং টেবিল B থেকে নেওয়া হয়। -
GeocodeResult.addressComponents[].types: ঠিকানার প্রতিটি উপাদানের একটিtypesঅ্যারে থাকে, যা ঠিকানার সেই নির্দিষ্ট অংশের ধরন নির্দেশ করে। এই মানগুলি 'Place Types (New)' পৃষ্ঠার 'Address types' এবং 'address component types' সারণি থেকে নেওয়া হয়।
রিভার্স জিওকোডার '
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/v4/geocode/location/37.4225508,-122.0846338?granularity=ROOFTOP
&granularity=GEOMETRIC_CENTER &key=API_KEY প্রকার
এক বা একাধিক ঠিকানার ধরণ, যা পৃথক কোয়েরি প্যারামিটার হিসাবে নির্দিষ্ট করা হয়। সম্ভাব্য মানগুলি 'প্লেস টাইপস (নিউ)' পৃষ্ঠার ' অ্যাড্রেস টাইপস' এবং 'অ্যাড্রেস কম্পোনেন্ট টাইপস' টেবিল থেকে নেওয়া হয়। আপনি যদি একাধিক
typesপ্যারামিটার নির্দিষ্ট করেন, তাহলে API সেই সমস্ত ঠিকানা ফেরত দেবে যা যেকোনো একটি ধরণের সাথে মেলে।`
typesপ্যারামিটারটি অনুসন্ধানকে নির্দিষ্ট ঠিকানার ধরণ(গুলি)তে সীমাবদ্ধ করে না। বরং,typesএকটি অনুসন্ধান-পরবর্তী ফিল্টার হিসেবে কাজ করে। এপিআইটি নির্দিষ্ট অবস্থানের জন্য সমস্ত ফলাফল সংগ্রহ করে, তারপর সেই ফলাফলগুলি বাদ দেয় যেগুলি নির্দিষ্ট ঠিকানার ধরণ(গুলি)র সাথে মেলে না।আপনি যদি
typesএবংgranularityউভয়ই নির্দিষ্ট করেন, তাহলে এপিআই কেবল সেই ফলাফলগুলিই ফেরত দেবে যা উভয়ের সাথে মেলে। উদাহরণস্বরূপ:https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?types=administrative_area_level_2
&types=locality &key=API_KEY ফিল্ডমাস্ক
রেসপন্সে কোন ফিল্ডগুলো ফেরত আসবে তা নির্দিষ্ট করতে একটি রেসপন্স ফিল্ড মাস্ক তৈরি করুন। URL প্যারামিটার
$fieldsবাfieldsব্যবহার করে, অথবা HTTP হেডারX-Goog-FieldMaskব্যবহার করে রেসপন্স ফিল্ড মাস্কটি মেথডে পাস করুন। উদাহরণস্বরূপ, নিচের রিকোয়েস্টটি রেসপন্সের শুধুমাত্রplaceIDফিল্ডগুলো ফেরত দেবে। উত্তরটি হলো:curl -X GET -H 'Content-Type: application/json' \ -H 'X-Goog-FieldMask: results.placeId' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338"
{ "results": [ { "placeId": "ChIJHRNUiQK6j4ARJ__Hrbt6qsE" }, { "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g" }, { "placeId": "ChIJ1yjFJ1-7j4ARG_RVqFD1h7k" }, { "placeId": "ChIJ09H2YwK6j4ARoF7qfCBxhB8" }, ... ] }
আরও বিস্তারিত তথ্যের জন্য ফেরত দেওয়ার ক্ষেত্র নির্বাচন দেখুন।