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

ইউরোপীয় অর্থনৈতিক অঞ্চল (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 রেসপন্সে types অ্যারে অন্তর্ভুক্ত থাকে যা GeocodeResult-এর মধ্যে দুটি প্রধান জায়গায় থাকে:

    1. GeocodeResult.types: এই অ্যারে ফলাফলের সামগ্রিক ধরন নির্দেশ করে। Places API-এর মাধ্যমে ব্যবহৃত জায়গার ধরন থেকে সম্ভাব্য ভ্যালু নেওয়া হয়। আরও তথ্যের জন্য, জায়গার ধরন টেবিল A এবং B দেখুন।
    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"
        },
        ...
      ]
    }

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