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

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

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

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

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

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

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

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

या क्वेरी पैरामीटर से दिखाए गए अक्षांश और देशांतर निर्देशांकों के स्ट्रक्चर्ड सेट के तौर पर:

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

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

अन्य सभी पैरामीटर को यूआरएल पैरामीटर के तौर पर पास करें. इसके अलावा, एपीआई पासकोड या फ़ील्ड मास्क जैसे पैरामीटर के लिए, हेडर में जीईटी अनुरोध के हिस्से के तौर पर पास करें. उदाहरण के लिए:

जगह की जानकारी वाली ऐसी स्ट्रिंग पास करना जो स्ट्रक्चर्ड न हो

अनस्ट्रक्चर्ड जगह, कॉमा लगाकर अलग किए गए स्ट्रिंग के तौर पर फ़ॉर्मैट की गई जगह होती है. इसमें अक्षांश और देशांतर के निर्देशांक होते हैं:

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"

स्ट्रक्चर्ड जगह की जानकारी पास करना

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 ऑब्जेक्ट दिखाता है. इसमें ये शामिल होते हैं:

  • GeocodeResult ऑब्जेक्ट का results ऐरे, जो जगह के बारे में बताता है.

    Geocoding API से मिले जवाबों में, GeocodeResult में दो मुख्य जगहों पर types कलेक्शन शामिल होते हैं:

    1. GeocodeResult.types: यह कलेक्शन, नतीजे के टाइप के बारे में बताता है. संभावित वैल्यू, Places API के इस्तेमाल किए गए जगह के टाइप से ली जाती हैं. ज़्यादा जानकारी के लिए, जगह के टाइप की टेबल A और B देखें.
    2. GeocodeResult.addressComponents[].types: पते के हर कॉम्पोनेंट में एक types कलेक्शन होता है, जो पते के उस हिस्से के टाइप के बारे में बताता है. ये वैल्यू, Places API में इस्तेमाल की जाने वाली पते के टाइप और पते के कॉम्पोनेंट टाइप की टेबल से ली जाती हैं.

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

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

    ध्यान दें: एपीआई हमेशा Plus Codes नहीं दिखाता.

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

    देश/इलाके का कोड, दो वर्णों वाले CLDR कोड की वैल्यू के तौर पर. इसकी कोई डिफ़ॉल्ट वैल्यू नहीं होती. ज़्यादातर CLDR कोड, ISO 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"
        },
        ...
      ]
    }

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