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

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

जियोकोडिंग अनुरोधों को उलटें

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

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

अगर 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 मीटर से कम होने की गारंटी दी जाती है.