रिवर्स जियोकोडिंग (पता लुकअप) अनुरोध और जवाब

आम तौर पर, जियोकोडिंग का मतलब, मैप पर किसी जगह की जानकारी को ऐसे पते में बदलना है जिसे कोई भी पढ़ सके. इसके उलट, मैप पर किसी जगह की जानकारी को ऐसे पते में बदलने की प्रोसेस को रिवर्स जियोकोडिंग कहा जाता है जिसे इंसान पढ़ सके.

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

ज़रूरी पैरामीटर

  • latlng — अक्षांश और देशांतर के निर्देशांक, जिनसे उस जगह की जानकारी मिलती है जिसके लिए आपको सबसे नज़दीकी और आसानी से पढ़ा जा सकने वाला पता चाहिए.
  • key — आपके ऐप्लिकेशन का एपीआई पासकोड. यह कुंजी, कोटा मैनेजमेंट के लिए आपके ऐप्लिकेशन की पहचान करती है. कुंजी पाने का तरीका जानें.

ज़रूरी नहीं पैरामीटर

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

  • language — वह भाषा जिसमें नतीजे दिखाने हैं.
    • इस्तेमाल की जा सकने वाली भाषाओं की सूची देखें. Google, इस्तेमाल की जा सकने वाली भाषाओं की सूची को अक्सर अपडेट करता है. इसलिए, हो सकता है कि इस सूची में सभी भाषाएं शामिल न हों.
    • अगर language नहीं दिया गया है, तो जियोकोडर, Accept-Language हेडर में बताई गई पसंदीदा भाषा या उस डोमेन की मूल भाषा का इस्तेमाल करने की कोशिश करता है जिससे अनुरोध भेजा गया है.
    • जियोकोडर, सड़क का ऐसा पता देने की पूरी कोशिश करता है जिसे उपयोगकर्ता और स्थानीय लोग, दोनों पढ़ सकें. इस लक्ष्य को हासिल करने के लिए, यह सेवा, सड़क के पते को स्थानीय भाषा में दिखाती है. साथ ही, ज़रूरत पड़ने पर, उपयोगकर्ता के लिए पढ़ने लायक स्क्रिप्ट में बदल देती है. इसके लिए, उपयोगकर्ता की पसंदीदा भाषा का इस्तेमाल किया जाता है. बाकी सभी पते, आपकी पसंदीदा भाषा में दिखाए जाते हैं. पते के सभी कॉम्पोनेंट, उसी भाषा में दिखाए जाते हैं जो पहले कॉम्पोनेंट के लिए चुनी गई है.
    • अगर कोई नाम आपकी पसंदीदा भाषा में उपलब्ध नहीं है, तो जियोकोडर सबसे मिलते-जुलते नाम का इस्तेमाल करता है.
  • region — क्षेत्र कोड, जिसे ccTLD के तौर पर तय किया गया है ("टॉप लेवल डोमेन") दो वर्णों की वैल्यू. लागू कानून के आधार पर, पैरामीटर से नतीजों पर भी असर पड़ सकता है.
  • result_type — एक या उससे ज़्यादा पतों के टाइप का फ़िल्टर, जिसे पाइप (|) से अलग किया गया है. अगर पैरामीटर में कई तरह के पते शामिल हैं, तो एपीआई उन सभी पतों को दिखाता है जो किसी भी टाइप से मैच करते हैं. प्रोसेसिंग के बारे में जानकारी: result_type पैरामीटर, खोज को तय किए गए पते के टाइप पर सीमित नहीं करता. इसके बजाय, result_type, खोज के बाद फ़िल्टर के तौर पर काम करता है: एपीआई, बताए गए latlng के लिए सभी नतीजे फ़ेच करता है. इसके बाद, उन नतीजों को खारिज कर देता है जो बताए गए पते के टाइप से मेल नहीं खाते. इन वैल्यू का इस्तेमाल किया जा सकता है:
    • 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 से, किसी लोकप्रिय जगह का नाम पता चलता है. आम तौर पर, ये "पीओआई" ऐसी लोकल इकाइयां होती हैं जिन्हें किसी दूसरी कैटगरी में आसानी से नहीं रखा जा सकता. जैसे, "एम्पायर स्टेट बिल्डिंग" या "एफ़िल टावर".
  • location_type — एक या उससे ज़्यादा जगहों के टाइप का फ़िल्टर, जो पाइप (|) से अलग किया गया है. अगर पैरामीटर में एक से ज़्यादा जगहों के टाइप शामिल हैं, तो एपीआई उन सभी पतों को दिखाता है जो किसी भी टाइप से मेल खाते हैं. प्रोसेसिंग के बारे में एक जानकारी: location_type पैरामीटर, खोज को तय जगह के टाइप तक सीमित नहीं करता. इसके बजाय, location_type, खोज के बाद फ़िल्टर के तौर पर काम करता है: एपीआई, बताई गई latlng के लिए सभी नतीजे फ़ेच करता है. इसके बाद, उन नतीजों को खारिज कर देता है जो बताई गई जगह के टाइप से मेल नहीं खाते. ये वैल्यू इस्तेमाल की जा सकती हैं:
    • "ROOFTOP" सिर्फ़ उन पतों की जानकारी दिखाता है जिनके लिए Google के पास सटीक जगह की जानकारी है.
    • "RANGE_INTERPOLATED" सिर्फ़ ऐसे पते दिखाता है जो आम तौर पर सड़क पर, दो सटीक पॉइंट (जैसे, चौराहे) के बीच के अनुमानित पॉइंट को दिखाते हैं. आम तौर पर, इंटरपोलेशन की गई रेंज से यह पता चलता है कि किसी पते के लिए, रूफ़टॉप जियोकोड उपलब्ध नहीं हैं.
    • "GEOMETRIC_CENTER" सिर्फ़ किसी जगह के ज्यामितीय केंद्र दिखाता है. जैसे, पॉलीलाइन (उदाहरण के लिए, सड़क) या पॉलीगॉन (इलाका).
    • "APPROXIMATE" सिर्फ़ ऐसे पते दिखाता है जिन्हें अनुमानित के तौर पर दिखाया गया है.
  • extra_computations — रिस्पॉन्स में इन अतिरिक्त सुविधाओं के बारे में बताने के लिए, इस पैरामीटर का इस्तेमाल करें: एक ही एपीआई अनुरोध के लिए, इनमें से कई सुविधाओं को चालू करने के लिए, हर सुविधा के लिए अनुरोध में extra_computations पैरामीटर शामिल करें. उदाहरण के लिए:
    extra_computations=ADDRESS_DESCRIPTORS&extra_computations=BUILDING_AND_ENTRANCES

अगर result_type और location_type, दोनों फ़िल्टर मौजूद हैं, तो एपीआई सिर्फ़ उन नतीजों को दिखाता है जो result_type और location_type, दोनों वैल्यू से मैच करते हैं. अगर फ़िल्टर की कोई भी वैल्यू स्वीकार नहीं की जाती है, तो एपीआई ZERO_RESULTS दिखाता है.

रिवर्स जियोकोडिंग का उदाहरण

नीचे दी गई क्वेरी में, ब्रुकलिन की किसी जगह के अक्षांश/देशांतर की वैल्यू शामिल है:

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY

ऊपर दी गई क्वेरी से यह नतीजा मिलता है:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "277",
               "short_name" : "277",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Bedford Avenue",
               "short_name" : "Bedford Ave",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Williamsburg",
               "short_name" : "Williamsburg",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Brooklyn",
               "short_name" : "Brooklyn",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Kings",
               "short_name" : "Kings",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "New York",
               "short_name" : "NY",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "11211",
               "short_name" : "11211",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
         "geometry" : {
            "location" : {
               "lat" : 40.714232,
               "lng" : -73.9612889
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 40.7155809802915,
                  "lng" : -73.9599399197085
               },
               "southwest" : {
                  "lat" : 40.7128830197085,
                  "lng" : -73.96263788029151
               }
            }
         },
         "place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
         "types" : [ "street_address" ]
      },

  ... Additional <code>results[]</code> ...

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

रिवर्स जियोकोडर, राजनैतिक इकाइयों (देश, प्रांत, शहर, और इलाके), मोहल्ले के पते, और पिन कोड से मैच करता है.

पिछली क्वेरी से मिली formatted_address वैल्यू की पूरी सूची यहां दी गई है.

{
   "plus_code" : {
      "compound_code" : "P27Q+MCM New York, NY, USA",
      "global_code" : "87G8P27Q+MCM"
   },
   "results" : [
      {
         "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "279 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "premise" ]
      },
      {
         "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "establishment", "point_of_interest" ]
      },
      {
         "formatted_address" : "291-275 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "route" ]
      },
      {
         "formatted_address" : "P27Q+MC New York, NY, USA",
         ...
         "types" : [ "plus_code" ]
      },
      {
         "formatted_address" : "South Williamsburg, Brooklyn, NY, USA",
         ...
         "types" : [ "neighborhood", "political" ]
      },
      {
         "formatted_address" : "Brooklyn, NY 11211, USA",
         ...
         "types" : [ "postal_code" ]
      },
      {
         "formatted_address" : "Williamsburg, Brooklyn, NY, USA",
         ...
         "types" : [ "neighborhood", "political" ]
      },
      {
         "formatted_address" : "Kings County, Brooklyn, NY, USA",
         ...
         "types" : [ "administrative_area_level_2", "political" ]
      },
      {
         "formatted_address" : "Brooklyn, NY, USA",
         ...
         "types" : [ "political", "sublocality", "sublocality_level_1" ]
      },
      {
         "formatted_address" : "New York, NY, USA",
         ...
         "types" : [ "locality", "political" ]
      },
      {
         "formatted_address" : "New York, USA",
         ...
         "types" : [ "administrative_area_level_1", "political" ]
      },
      {
         "formatted_address" : "United States",
         ...
         "types" : [ "country", "political" ]
      }
   ],
   "status" : "OK"
}

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

रिवर्स जियोकोडिंग को टाइप के हिसाब से फ़िल्टर किया गया

नीचे दिए गए उदाहरण में, दिखाए गए पतों को फ़िल्टर किया गया है, ताकि सिर्फ़ उन पतों को शामिल किया जा सके जिनकी जगह की जानकारी ROOFTOP और पते का टाइप street_address है.

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452
&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY

ध्यान दें: ये फ़िल्टर सिर्फ़ रिवर्स जियोकोडिंग के लिए मान्य हैं.

रिवर्स जियोकोडिंग के जवाब

रिवर्स जियोकोडिंग के रिस्पॉन्स का फ़ॉर्मैट, जियोकोडिंग के रिस्पॉन्स जैसा ही होता है. जियोकोडिंग के जवाब देखें. रिवर्स जियोकोडिंग के रिस्पॉन्स में ये स्टेटस कोड दिख सकते हैं.

रिवर्स जियोकोडिंग के स्टेटस कोड

जियोकोडिंग के जवाब वाले ऑब्जेक्ट में मौजूद "status" फ़ील्ड में, अनुरोध की स्थिति होती है. साथ ही, इसमें डीबग करने से जुड़ी जानकारी भी हो सकती है, ताकि यह पता लगाया जा सके कि रिवर्स जियोकोडिंग काम क्यों नहीं कर रही है. "status" फ़ील्ड में ये वैल्यू हो सकती हैं:

  • "OK" से पता चलता है कि कोई गड़बड़ी नहीं हुई और कम से कम एक पता दिखाया गया.
  • "ZERO_RESULTS" से पता चलता है कि रिवर्स जियोकोडिंग की प्रोसेस पूरी हो गई है, लेकिन कोई नतीजा नहीं मिला. ऐसा तब हो सकता है, जब जियोकोडर को किसी ऐसी जगह का latlng दिया गया हो जो दूर हो.
  • "OVER_QUERY_LIMIT" से पता चलता है कि आपने कोटा से ज़्यादा ट्रैफ़िक इस्तेमाल किया है.
  • "REQUEST_DENIED" से पता चलता है कि अनुरोध अस्वीकार कर दिया गया था. ऐसा इसलिए हो सकता है, क्योंकि अनुरोध में result_type या location_type पैरामीटर शामिल है, लेकिन एपीआई पासकोड शामिल नहीं है.
  • आम तौर पर, "INVALID_REQUEST" इनमें से किसी एक का संकेत देता है:
    • क्वेरी (address, components या latlng) मौजूद नहीं है.
    • अमान्य result_type या location_type दिया गया था.
  • "UNKNOWN_ERROR" से पता चलता है कि सर्वर की गड़बड़ी की वजह से, अनुरोध को प्रोसेस नहीं किया जा सका. फिर से कोशिश करने पर, अनुरोध पूरा हो सकता है.

प्लस कोड को रिवर्स जियोकोड करना

जियोकोडिंग के जवाब में मौजूद plus_code फ़ील्ड में एक प्लस कोड होता है, जो अनुरोध किए गए अक्षांश और देशांतर का सबसे सही अनुमान लगाता है. इसके अलावा, ज़्यादातर मामलों में JSON के नतीजों के कलेक्शन में, plus_code टाइप के साथ पूरी तरह से जियोकोड किया गया पता और प्लस कोड वाला पता शामिल होता है. डिकोड किए गए प्लस कोड और अनुरोध किए गए पॉइंट के बीच की दूरी 10 मीटर से कम होनी चाहिए.