কোনও লোকেশন রিভার্স জিওকোড করুন

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA)-এর ডেভেলপার

রিভার্স জিওকোডিং ম্যাপের লোকেশনকে মানুষের-পঠনযোগ্য ঠিকানায় অনুবাদ করে। আপনি ম্যাপে লোকেশনকে অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্কের মাধ্যমে দেখাতে পারেন।

আপনি কোনও লোকেশন রিভার্স জিওকোড করলে, উত্তরে এগুলি থাকে:

এই API বিভিন্ন ধরনের ঠিকানা রিটার্ন করে, সবচেয়ে নির্দিষ্ট রাস্তার ঠিকানা থেকে শুরু করে কম নির্দিষ্ট রাজনৈতিক সত্তা যেমন, পাড়া, শহর, কাউন্টি ও রাজ্য। সবচেয়ে সঠিক ঠিকানা সাধারণত প্রথম ফলাফল হিসেবে দেখানো হয়। আপনি যদি নির্দিষ্ট ধরনের ঠিকানা মেলাতে চান, তাহলে 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

HTML ফর্মে ক্যাপচার করা লোকেশন কম্পোনেন্ট প্রসেস করার সময় আপনি সাধারণত স্ট্রাকচার্ড ফর্ম্যাট ব্যবহার করেন।

URL প্যারামিটার হিসেবে অন্য সব প্যারামিটার পাস করুন অথবা API কী বা ফিল্ড মাস্কের মতো প্যারামিটারের জন্য, GET অনুরোধের অংশ হিসেবে হেডার পাস করুন। যেমন:

আনস্ট্রাকচার্ড লোকেশন স্ট্রিং পাস করা

আনস্ট্রাকচার্ড লোকেশন হল এমন একটি লোকেশন যা কমা দিয়ে আলাদা করা অক্ষাংশ ও দ্রাঘিমাংশের স্ট্রিং হিসেবে ফর্ম্যাট করা থাকে:

https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?key=API_KEY

অথবা curl কমান্ডে:

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"

একটি স্ট্রাকচার্ড লোকেশন পাস করুন

location কোয়েরি প্যারামিটার ব্যবহার করে স্ট্রাকচার করা লোকেশন উল্লেখ করুন, যার ধরন হল LatLng। LatLng অবজেক্ট আপনাকে আলাদা কোয়েরি প্যারামিটার হিসেবে অক্ষাংশ ও দ্রাঘিমাংশ নির্দিষ্ট করতে দেয়:

https://geocode.googleapis.com/v4/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 — সমস্ত Geocoding API পদ্ধতির সাথে ব্যবহার করুন।
  • https://www.googleapis.com/auth/maps-platform.geocode.location — রিভার্স জিওকোডিংয়ের জন্য শুধু GeocodeLocation-এর সাথে ব্যবহার করুন।

এছাড়াও, আপনি সব Geocoding API পদ্ধতির জন্য সাধারণ https://www.googleapis.com/auth/cloud-platform স্কোপ ব্যবহার করতে পারবেন। ডেভেলপমেন্টের সময় এই স্কোপ উপযোগী হলেও প্রোডাকশনের সময় নয়, কারণ এটি একটি সাধারণ স্কোপ যা সব পদ্ধতিতে অ্যাক্সেস দেয়।

আরও তথ্য ও উদাহরণের জন্য, OAuth ব্যবহার করুন দেখুন।

রিভার্স জিওকোডিং রেসপন্স

রিভার্স জিওকোডিং একটি GeocodeLocationResponse অবজেক্ট রিটার্ন করে যার মধ্যে এগুলি থাকে:

  • results অ্যারে অফ GeocodeResult অবজেক্ট যা জায়গাটিকে উপস্থাপন করে।

    Geocoding API-এর দেওয়া উত্তরে GeocodeResult-এর মধ্যে দুটি প্রধান জায়গায় types অ্যারে থাকে:

    1. GeocodeResult.types: এই অ্যারে ফলাফলের সামগ্রিক ধরন নির্দেশ করে। সম্ভাব্য ভ্যালুগুলি Places API-এর ব্যবহার করা জায়গার ধরন থেকে নেওয়া হয়। আরও তথ্যের জন্য, জায়গার ধরন সংক্রান্ত টেবিল ক ও খ দেখুন।
    2. GeocodeResult.addressComponents[].types: প্রতিটি অ্যাড্রেস কম্পোনেন্টে একটি types অ্যারে থাকে যা অ্যাড্রেসের সেই নির্দিষ্ট অংশের ধরন নির্দেশ করে। এইসব ভ্যালু Places API-এর ব্যবহার করা ঠিকানার ধরন ও ঠিকানার কম্পোনেন্ট ধরনের টেবিল থেকে নেওয়া হয়।

    রিভার্স জিওকোডার results অ্যারেতে একাধিক ফলাফল রিটার্ন করে। ফলাফলগুলি শুধু ডাক ঠিকানা নয়, ভৌগোলিক নাম দিয়ে কোনও লোকেশন শনাক্ত করার যেকোনও উপায়। যেমন, শিকাগো শহরের কোনও পয়েন্ট জিওকোড করার সময়, জিওকোড করা পয়েন্টটি রাস্তার ঠিকানা, শহর (শিকাগো), রাজ্য (ইলিনয়) বা দেশ (মার্কিন যুক্তরাষ্ট্র) হিসেবে দেখানো হতে পারে। সব জিওকোডারকে দেওয়া "ঠিকানা"। রিভার্স জিওকোডার বৈধ ফলাফল হিসেবে এগুলির যেকোনও একটি ধরন রিটার্ন করে।

  • PlusCode ধরনের plusCode ফিল্ডে Plus Code থাকে যা অনুরোধে অক্ষাংশ ও দ্রাঘিমাংশের সবচেয়ে কাছাকাছি আনুমানিক মান দেখায়। এছাড়াও, results অ্যারের প্রতিটি এলিমেন্টে একটি Plus Code থাকে। ডিকোড করা Plus Code এবং অনুরোধ করা পয়েন্টের মধ্যে দূরত্ব ১০ মিটারের কম।

    মনে রাখবেন: API সবসময় Plus Code দেখায় না।

সম্পূর্ণ 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

    ফলাফল যে ভাষায় দেখানো হবে।

    • অনুমোদিত ভাষার তালিকা দেখুন। Google প্রায়ই কাজ করে এমন ভাষার তালিকা আপডেট করে, তাই এই তালিকা সম্পূর্ণ নাও হতে পারে।
    • languageCode প্রদান করা না হলে, API ডিফল্ট হিসেবে স্থানীয় ভাষা এবং লোকেশন স্ক্রিপ্ট ব্যবহার করে। আপনি যদি কোনও ভুল ভাষার কোড উল্লেখ করেন, তাহলে API একটি INVALID_ARGUMENT সমস্যা দেখায়।
    • ব্যবহারকারী ও স্থানীয় লোকজন, উভয়ের কাছেই বোধগম্য হয় এমন রাস্তার ঠিকানা প্রদান করার জন্য API যথাসাধ্য চেষ্টা করে। এই লক্ষ্য পূরণ করতে, এটি স্থানীয় ভাষায় রাস্তার ঠিকানা ফেরত পাঠায়, যা ব্যবহারকারীর পছন্দের ভাষা অনুযায়ী, প্রয়োজনে ব্যবহারকারীর পড়ার উপযোগী স্ক্রিপ্টে লিপ্যন্তর করা হয়। অন্যান্য সব ঠিকানা পছন্দের ভাষায় দেখানো হয়। ঠিকানার সব কম্পোনেন্ট একই ভাষায় দেখানো হয়, যা প্রথম কম্পোনেন্ট থেকে বেছে নেওয়া হয়।
    • পছন্দসই ভাষায় কোনও নাম উপলভ্য না থাকলে, API সবচেয়ে কাছাকাছি ম্যাচ ব্যবহার করে।
    • API যে ফলাফলগুলি রিটার্ন করার জন্য বেছে নেয় এবং সেগুলি যে ক্রমে রিটার্ন করা হয়, সেগুলির সেটের উপর পছন্দের ভাষার সামান্য প্রভাব পড়ে। জিওকোডার ভাষার উপর নির্ভর করে সংক্ষিপ্ত রূপকে আলাদাভাবে ব্যাখ্যা করে, যেমন রাস্তার প্রকারের সংক্ষিপ্ত রূপ বা সমার্থক শব্দ যা একটি ভাষায় বৈধ হতে পারে কিন্তু অন্য ভাষায় নয়।
  • regionCode

    অঞ্চল কোড দুই-অক্ষরের CLDR কোড ভ্যালু হিসেবে। কোনও ডিফল্ট ভ্যালু নেই। বেশিরভাগ CLDR কোড ISO 3166-1 কোডের মতো।

    কোনও ঠিকানা জিওকোড করার সময়, ফরওয়ার্ড জিওকোডিং, এই প্যারামিটার নির্দিষ্ট অঞ্চলের জন্য পরিষেবা থেকে প্রাপ্ত ফলাফলকে প্রভাবিত করতে পারে, তবে সম্পূর্ণরূপে সীমাবদ্ধ করতে পারে না। কোনও লোকেশন বা জায়গা জিওকোডিং করার সময়, রিভার্স জিওকোডিং বা জায়গা জিওকোডিং, এই প্যারামিটারটি ঠিকানা ফর্ম্যাট করার জন্য ব্যবহার করা যেতে পারে। সব ক্ষেত্রেই, এই প্যারামিটার প্রযোজ্য আইনের ভিত্তিতে ফলাফলকে প্রভাবিত করতে পারে।

  • গ্রানুলারিটি

    Granularity-এর সংজ্ঞা অনুযায়ী, এক বা একাধিক লোকেশন গ্র্যানুলারিটি, যা আলাদা কোয়েরি প্যারামিটার হিসেবে উল্লেখ করা হয়েছে। আপনি একাধিক granularity প্যারামিটার উল্লেখ করলে, API এমন সব ঠিকানা দেখায় যা যেকোনও গ্র্যানুলারিটির সাথে মেলে।

    granularity প্যারামিটারটি নির্দিষ্ট লোকেশন গ্র্যানুলারিটিতে সার্চকে সীমাবদ্ধ করে না। বরং, granularity সার্চের পরে ফিল্টার হিসেবে কাজ করে। API নির্দিষ্ট location-এর জন্য সব ফলাফল ফেচ করে, তারপর সেইসব ফলাফল বাতিল করে দেয় যেগুলি নির্দিষ্ট লোকেশন গ্র্যানুলারিটির সাথে ম্যাচ করে না।

    আপনি types ও granularity, দুটিই উল্লেখ করলে, API শুধুমাত্র সেইসব ফলাফল দেখাবে যেগুলি দুটির সাথেই ম্যাচ করে। যেমন:

    https://geocode.googleapis.com/v4/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/v4/geocode/location/37.4225508,-122.0846338?types=administrative_area_level_2&types=locality&key=API_KEY
  • FieldMask

    উত্তরে কোন কোন ফিল্ড ফেরত দেওয়া হবে তা নির্দিষ্ট করতে রেসপন্স ফিল্ড মাস্ক তৈরি করুন। 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"
        },
        ...
      ]
    }

    আরও বিবরণের জন্য ফেরত পাঠানোর জন্য ফিল্ড বেছে নিন দেখুন।