বিপরীত জিওকোডিং একটি মানচিত্রের অবস্থানকে মানুষের পঠনযোগ্য ঠিকানায় রূপান্তর করে। আপনি অবস্থানের অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক দ্বারা মানচিত্রের অবস্থানটি উপস্থাপন করেন।
যখন আপনি কোনও অবস্থানকে বিপরীত জিওকোড করেন, তখন প্রতিক্রিয়াটিতে থাকে:
- ঠিকানার স্থান আইডি
- ঠিকানার প্লাস কোড
- ঠিকানার বিবরণ
এই API বিভিন্ন ধরণের ঠিকানা প্রদান করে, সবচেয়ে নির্দিষ্ট রাস্তার ঠিকানা থেকে শুরু করে কম নির্দিষ্ট রাজনৈতিক সত্তা যেমন পাড়া, শহর, কাউন্টি এবং রাজ্য পর্যন্ত। সবচেয়ে সঠিক ঠিকানাটি সাধারণত প্রথম ফলাফল। আপনি যদি একটি নির্দিষ্ট ধরণের ঠিকানা মেলাতে চান, তাহলে 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
HTML ফর্ম্যাটে ক্যাপচার করা লোকেশন কম্পোনেন্টগুলি প্রক্রিয়া করার সময় আপনি সাধারণত স্ট্রাকচার্ড ফর্ম্যাট ব্যবহার করেন।
GET অনুরোধের অংশ হিসেবে অন্যান্য সমস্ত প্যারামিটার URL প্যারামিটার হিসেবে অথবা API কী বা ফিল্ড মাস্কের মতো প্যারামিটারের জন্য হেডারে পাস করুন। উদাহরণস্বরূপ:
একটি অসংগঠিত অবস্থান স্ট্রিং পাস করুন
একটি অসংগঠিত অবস্থান হল এমন একটি অবস্থান যা অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্কের একটি কমা দ্বারা পৃথক করা স্ট্রিং হিসাবে ফর্ম্যাট করা হয়:
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 ব্যবহার করুন
Geocoding API v4 প্রমাণীকরণের জন্য OAuth 2.0 সমর্থন করে। Geocoding API-এর সাথে OAuth ব্যবহার করার জন্য, OAuth টোকেনটিকে সঠিক স্কোপ বরাদ্দ করতে হবে। Geocoding API বিপরীত জিওকোডিংয়ের সাথে ব্যবহারের জন্য নিম্নলিখিত স্কোপগুলিকে সমর্থন করে:
-
https://www.googleapis.com/auth/maps-platform.geocode— সকল জিওকোডিং API এন্ডপয়েন্টের সাথে ব্যবহার করুন। -
https://www.googleapis.com/auth/maps-platform.geocode.location— বিপরীত জিওকোডিংয়ের জন্য শুধুমাত্রGeocodeLocationসাথে ব্যবহার করুন।
এছাড়াও, আপনি সমস্ত জিওকোডিং এপিআই এন্ডপয়েন্টের জন্য সাধারণ https://www.googleapis.com/auth/cloud-platform স্কোপ ব্যবহার করতে পারেন। এই স্কোপটি ডেভেলপমেন্টের সময় কার্যকর, কিন্তু উৎপাদনের সময় নয়, কারণ এটি একটি সাধারণ স্কোপ যা সমস্ত এন্ডপয়েন্টে অ্যাক্সেসের অনুমতি দেয়।
আরও তথ্য এবং উদাহরণের জন্য, 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ত্রুটি প্রদান করবে। - API এমন একটি রাস্তার ঠিকানা প্রদানের জন্য যথাসাধ্য চেষ্টা করে যা ব্যবহারকারী এবং স্থানীয় উভয়ের জন্যই পঠনযোগ্য। এই লক্ষ্য অর্জনের জন্য, এটি স্থানীয় ভাষায় রাস্তার ঠিকানাগুলি ফেরত দেয়, প্রয়োজনে ব্যবহারকারীর দ্বারা পঠনযোগ্য স্ক্রিপ্টে লিপ্যন্তরিত করে, পছন্দের ভাষা পর্যবেক্ষণ করে। অন্যান্য সমস্ত ঠিকানা পছন্দের ভাষায় ফেরত দেওয়া হয়। ঠিকানার উপাদানগুলি একই ভাষায় ফেরত দেওয়া হয়, যা প্রথম উপাদান থেকে নির্বাচিত হয়।
- যদি পছন্দের ভাষায় কোনও নাম পাওয়া না যায়, তাহলে API সবচেয়ে কাছের মিল ব্যবহার করে।
- API কোন ফলাফলগুলি ফেরত দিতে বেছে নেয় এবং কোন ক্রমে সেগুলি ফেরত দেওয়া হয় তার উপর পছন্দের ভাষার প্রভাব খুব কম থাকে। জিওকোডার ভাষার উপর নির্ভর করে সংক্ষিপ্ত রূপগুলিকে ভিন্নভাবে ব্যাখ্যা করে, যেমন রাস্তার ধরণের সংক্ষিপ্ত রূপ, অথবা প্রতিশব্দ যা এক ভাষায় বৈধ হতে পারে কিন্তু অন্য ভাষায় নয়।
অঞ্চল কোড
অঞ্চল কোডটি দুই-অক্ষরের CLDR কোড মান। কোনও ডিফল্ট মান নেই। বেশিরভাগ CLDR কোড ISO 3166-1 কোডের অনুরূপ।
কোনও ঠিকানা জিওকোডিং করার সময়, জিওডকোডিং ফরোয়ার্ড করার সময়, এই প্যারামিটারটি নির্দিষ্ট অঞ্চলে পরিষেবা থেকে ফলাফলকে প্রভাবিত করতে পারে, কিন্তু সম্পূর্ণরূপে সীমাবদ্ধ করতে পারে না। কোনও অবস্থান বা স্থানের জিওকোডিং করার সময়, জিওকোডিং বিপরীত করার সময় বা স্থান জিওকোডিং করার সময় , এই প্যারামিটারটি ঠিকানাটি ফর্ম্যাট করতে ব্যবহার করা যেতে পারে। সমস্ত ক্ষেত্রে, এই প্যারামিটার প্রযোজ্য আইনের উপর ভিত্তি করে ফলাফলকে প্রভাবিত করতে পারে।
গ্রানুলারিটি
Granularityদ্বারা সংজ্ঞায়িত পৃথক ক্যোয়ারী প্যারামিটার হিসাবে নির্দিষ্ট করা এক বা একাধিক অবস্থান গ্র্যানুলারিটি। যদি আপনি একাধিকgranularityপ্যারামিটার নির্দিষ্ট করেন, তাহলে API সমস্ত ঠিকানা ফেরত দেয় যা যেকোনো গ্র্যানুলারিটির সাথে মেলে।granularityপ্যারামিটার অনুসন্ধানকে নির্দিষ্ট অবস্থানের গ্রানুলারিটিতে সীমাবদ্ধ করে না। বরং,granularityএকটি পোস্ট-সার্চ ফিল্টার হিসেবে কাজ করে। API নির্দিষ্টlocationজন্য সমস্ত ফলাফল আনে, তারপর সেই ফলাফলগুলি বাতিল করে দেয় যা নির্দিষ্ট অবস্থানের গ্রানুলারিটির সাথে মেলে না।যদি আপনি উভয়
typesএবংgranularityনির্দিষ্ট করেন, তাহলে API শুধুমাত্র সেই ফলাফলগুলিই প্রদান করবে যা উভয়ের সাথে মেলে। উদাহরণস্বরূপ:https://geocode.googleapis.com/v4beta/geocode/location/37.4225508,-122.0846338?granularity=ROOFTOP
&granularity=GEOMETRIC_CENTER &key=API_KEY প্রকারভেদ
এক বা একাধিক ঠিকানার ধরণ, পৃথক ক্যোয়ারী প্যারামিটার হিসেবে নির্দিষ্ট করা হয়েছে। যদি আপনি একাধিক
typesপ্যারামিটার নির্দিষ্ট করেন, তাহলে API সেই সমস্ত ঠিকানা ফেরত দেয় যা যেকোনো ধরণের সাথে মেলে।typesপ্যারামিটার অনুসন্ধানকে নির্দিষ্ট ঠিকানার ধরণ(গুলি)তে সীমাবদ্ধ করে না। বরং,typesএকটি পোস্ট-সার্চ ফিল্টার হিসেবে কাজ করে। API নির্দিষ্ট অবস্থানের জন্য সমস্ত ফলাফল আনে, তারপর সেই ফলাফলগুলি বাতিল করে দেয় যা নির্দিষ্ট ঠিকানার ধরণ(গুলি) এর সাথে মেলে না।যদি আপনি উভয়
typesএবংgranularityনির্দিষ্ট করেন, তাহলে API শুধুমাত্র সেই ফলাফলগুলিই প্রদান করবে যা উভয়ের সাথে মেলে। উদাহরণস্বরূপ: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একটি নামযুক্ত রুট (যেমন "US 101")। 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)।