किसी जगह को जियोकोड में बदलना

यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

रिवर्स जियोकोडिंग, मैप पर मौजूद जगह की जानकारी को ऐसे पते में बदलती है जिसे आसानी से पढ़ा जा सकता है. जगह के अक्षांश और देशांतर निर्देशांकों की मदद से, मैप पर जगह की जानकारी दिखाई जाती है.

किसी जगह की रिवर्स जियोकोडिंग करने पर, जवाब में यह जानकारी शामिल होती है:

यह एपीआई अलग-अलग तरह के पते दिखाता है. इनमें सबसे सटीक सड़क का पता और कम सटीक राजनैतिक इकाइयां शामिल हैं. जैसे, आस-पड़ोस, शहर, काउंटी, और राज्य. आम तौर पर, सबसे सटीक पता पहले नतीजे के तौर पर दिखता है. अगर आपको किसी खास तरह के पते से मिलता-जुलता पता ढूंढना है, तो types पैरामीटर का इस्तेमाल करें.

रिवर्स जियोकोडिंग का अनुरोध

रिवर्स जियोकोडिंग का अनुरोध, एचटीटीपी GET अनुरोध होता है. जगह की जानकारी को अनस्ट्रक्चर्ड स्ट्रिंग के तौर पर भी सेट किया जा सकता है:

https://geocode.googleapis.com/v4/geocode/location/LATITUDE,LONGITUDE

इसके अलावा, अक्षांश और देशांतर के स्ट्रक्चर्ड सेट के तौर पर भी निर्देशांक दिए जा सकते हैं. इन्हें क्वेरी पैरामीटर के तौर पर दिखाया जाता है:

https://geocode.googleapis.com/v4/geocode/location?location.latitude=LATITUDE&location.longitude=LONGITUDE

आम तौर पर, एचटीएमएल फ़ॉर्म में कैप्चर किए गए पते के कॉम्पोनेंट को प्रोसेस करने के लिए, स्ट्रक्चर्ड फ़ॉर्मैट का इस्तेमाल किया जाता है.

अन्य सभी पैरामीटर को यूआरएल पैरामीटर के तौर पर पास करें. इसके अलावा, एपीआई कुंजी या फ़ील्ड मास्क जैसे पैरामीटर के लिए, 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 का इस्तेमाल करना

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: इस कलेक्शन से पता चलता है कि नतीजे किस तरह के हैं. संभावित वैल्यू, Place Types (New) पेज पर मौजूद Table A and Table B से ली जाती हैं.
    2. GeocodeResult.addressComponents[].types: पते के हर कॉम्पोनेंट में types ऐरे होता है. इससे पता चलता है कि पते का वह हिस्सा किस तरह का है. ये वैल्यू, 'जगह के टाइप (नया वर्शन)' पेज पर मौजूद पते के टाइप और पते के कॉम्पोनेंट के टाइप टेबल से ली जाती हैं.

    रिवर्स जियोकोडर, results कलेक्शन में एक से ज़्यादा नतीजे दिखाता है. नतीजे सिर्फ़ पिन कोड के हिसाब से नहीं होते, बल्कि किसी जगह का नाम भौगोलिक तौर पर किसी भी तरह से दिया जा सकता है. उदाहरण के लिए, शिकागो शहर में किसी पॉइंट को जियोकोड करते समय, जियोकोड किए गए पॉइंट को सड़क के पते, शहर (शिकागो), राज्य (इलिनॉय) या देश (अमेरिका) के तौर पर दिखाया जा सकता है. ये सभी जियोकोडर के लिए "पते" हैं. रिवर्स जियोकोडर, इनमें से किसी भी टाइप को मान्य नतीजे के तौर पर दिखाता है.

  • PlusCode टाइप वाले plusCode फ़ील्ड में, ऐसा प्लस कोड होता है जो अनुरोध में दिए गए अक्षांश और देशांतर के सबसे करीब होता है. इसके अलावा, results कलेक्शन के हर एलिमेंट में एक प्लस कोड होता है. डिकोड किए गए Plus Code और अनुरोध किए गए पॉइंट के बीच की दूरी 10 मीटर से कम है.

    ध्यान दें: एपीआई हमेशा 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, अक्सर उन भाषाओं को अपडेट करता है जिनमें Gemini का इस्तेमाल किया जा सकता है. इसलिए, हो सकता है कि इस सूची में पूरी जानकारी शामिल न हो.
    • अगर languageCode नहीं दिया जाता है, तो एपीआई डिफ़ॉल्ट रूप से en को चुनता है. अगर आपने अमान्य भाषा कोड डाला है, तो एपीआई INVALID_ARGUMENT गड़बड़ी का मैसेज दिखाता है.
    • एपीआई, मोहल्ले का ऐसा पता देने की पूरी कोशिश करता है जिसे उपयोगकर्ता और स्थानीय लोग, दोनों आसानी से पढ़ सकें. इस लक्ष्य को पूरा करने के लिए, यह स्थानीय भाषा में सड़क के पते दिखाता है. अगर ज़रूरी हो, तो यह पते को ऐसी स्क्रिप्ट में लिप्यंतरित करता है जिसे उपयोगकर्ता पढ़ सकता है. ऐसा करते समय, यह उपयोगकर्ता की पसंदीदा भाषा का ध्यान रखता है. अन्य सभी पते, चुनी गई भाषा में दिखाए जाते हैं. पते के सभी कॉम्पोनेंट, एक ही भाषा में दिखाए जाते हैं. यह भाषा, पहले कॉम्पोनेंट से चुनी जाती है.
    • अगर नाम आपकी पसंदीदा भाषा में उपलब्ध नहीं है, तो एपीआई सबसे मिलते-जुलते नाम का इस्तेमाल करता है.
    • पसंदीदा भाषा का असर, एपीआई से मिले नतीजों के सेट और उनके क्रम पर पड़ता है. जियोकोडर, भाषा के हिसाब से शॉर्ट फ़ॉर्म का अलग-अलग मतलब निकालता है. जैसे, सड़क के टाइप के लिए इस्तेमाल किए गए शॉर्ट फ़ॉर्म या ऐसे समानार्थी शब्द जो एक भाषा में मान्य हो सकते हैं, लेकिन दूसरी भाषा में नहीं.
  • regionCode

    देश/इलाके का कोड, दो वर्णों वाले CLDR कोड की वैल्यू के तौर पर. कोई डिफ़ॉल्ट वैल्यू नहीं है. ज़्यादातर CLDR कोड, आईएसओ 3166-1 कोड के जैसे ही होते हैं.

    किसी पते को जियोकोड करते समय, फ़ॉरवर्ड जियोकोडिंग की जाती है. यह पैरामीटर, सेवा से मिले नतीजों पर असर डाल सकता है. हालांकि, यह पैरामीटर किसी खास इलाके के लिए, सेवा से मिले नतीजों को पूरी तरह से सीमित नहीं कर सकता. किसी जगह की जियोकोडिंग या रिवर्स जियोकोडिंग या जगह की जियोकोडिंग करते समय, इस पैरामीटर का इस्तेमाल पते को फ़ॉर्मैट करने के लिए किया जा सकता है. सभी मामलों में, लागू कानून के आधार पर इस पैरामीटर का असर नतीजों पर पड़ सकता है.

  • जानकारी का लेवल

    एक या उससे ज़्यादा लोकेशन की जानकारी, जिन्हें अलग-अलग क्वेरी पैरामीटर के तौर पर तय किया गया है. इन्हें Granularity के हिसाब से तय किया जाता है. अगर आपने एक से ज़्यादा granularity पैरामीटर तय किए हैं, तो एपीआई उन सभी पतों को दिखाता है जो किसी भी ग्रेन्यूलैरिटी से मेल खाते हैं.

    granularity पैरामीटर, खोज को बताई गई जगह की बारीकियों तक सीमित नहीं करता है. इसके बजाय, granularity खोज के बाद के फ़िल्टर के तौर पर काम करता है. एपीआई, तय किए गए location के लिए सभी नतीजे फ़ेच करता है. इसके बाद, उन नतीजों को खारिज कर देता है जो तय की गई जगह के हिसाब से नहीं होते.

    अगर आपने types और granularity, दोनों को सेट किया है, तो एपीआई सिर्फ़ वे नतीजे दिखाएगा जो दोनों से मेल खाते हों. उदाहरण के लिए:

    https://geocode.googleapis.com/v4/geocode/location/37.4225508,-122.0846338?granularity=ROOFTOP&granularity=GEOMETRIC_CENTER&key=API_KEY
  • प्रकार

    एक या उससे ज़्यादा पते के टाइप, जिन्हें अलग-अलग क्वेरी पैरामीटर के तौर पर तय किया गया है. संभावित वैल्यू, Place Types (New) पेज पर मौजूद पते के टाइप और पते के कॉम्पोनेंट टाइप टेबल से ली जाती हैं. अगर आपने एक से ज़्यादा types पैरामीटर तय किए हैं, तो एपीआई उन सभी पतों को दिखाता है जो किसी भी टाइप से मेल खाते हैं.

    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
  • FieldMask

    जवाब में दिखाए जाने वाले फ़ील्ड तय करने के लिए, जवाब फ़ील्ड मास्क बनाएं. यूआरएल पैरामीटर $fields या fields का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क को तरीके से पास करें. इसके अलावा, एचटीटीपी हेडर 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"
        },
        ...
      ]
    }

    ज़्यादा जानकारी के लिए, जवाब में शामिल करने के लिए फ़ील्ड चुनना लेख पढ़ें.