जियोकोडिंग का मतलब आम तौर पर, किसी पते को मैप पर मौजूद जगह में बदलना होता है. इसकी उल्टी प्रोसेस, यानी कि मैप पर मौजूद किसी जगह की जानकारी को ऐसे पते में बदलना जिसे आसानी से पढ़ा जा सके, रिवर्स जियोकोडिंग कहलाती है.
रिवर्स जियोकोडिंग के अनुरोध
ज़रूरी पैरामीटर
latlng— अक्षांश और देशांतर निर्देशांक. इनसे उस जगह की जानकारी मिलती है जिसके लिए आपको सबसे नज़दीकी और आसानी से पढ़ा जा सकने वाला पता चाहिए.key— आपके ऐप्लिकेशन का एपीआई पासकोड. इस कुंजी से, कोटा मैनेजमेंट के लिए आपके ऐप्लिकेशन की पहचान होती है. कुंजी पाने का तरीका जानें.
ज़रूरी नहीं पैरामीटर
ये वैकल्पिक पैरामीटर हैं. इन्हें रिवर्स जियोकोडिंग के अनुरोध में शामिल किया जा सकता है:
language— वह भाषा जिसमें नतीजे दिखाने हैं.- इस्तेमाल की जा सकने वाली भाषाओं की सूची देखें. Google, इस सुविधा के लिए उपलब्ध भाषाओं को अक्सर अपडेट करता रहता है. इसलिए, हो सकता है कि इस सूची में पूरी जानकारी शामिल न हो.
- अगर
languageनहीं दिया जाता है, तो जियोकोडरAccept-Languageहेडर में बताई गई पसंदीदा भाषा का इस्तेमाल करने की कोशिश करता है. इसके अलावा, वह उस डोमेन की मूल भाषा का इस्तेमाल करने की कोशिश करता है जिससे अनुरोध भेजा गया है. - जियोकोडर, सड़क का ऐसा पता देने की पूरी कोशिश करता है जिसे उपयोगकर्ता और स्थानीय लोग, दोनों पढ़ सकें. इस लक्ष्य को पूरा करने के लिए, यह स्थानीय भाषा में सड़क के पते दिखाता है. अगर ज़रूरी हो, तो उपयोगकर्ता की पसंदीदा भाषा में पते को लिप्यंतरित भी करता है. अन्य सभी पतों को पसंदीदा भाषा में दिखाया जाता है. पते के सभी कॉम्पोनेंट, एक ही भाषा में दिखाए जाते हैं. यह भाषा, पहले कॉम्पोनेंट से चुनी जाती है.
- अगर पसंदीदा भाषा में नाम उपलब्ध नहीं है, तो जियोकोडर सबसे मिलते-जुलते नाम का इस्तेमाल करता है.
region— यह क्षेत्र का कोड है. इसे ccTLD ("टॉप लेवल डोमेन") के तौर पर तय किया जाता है. इसकी वैल्यू दो वर्णों की होती है. लागू कानून के आधार पर, इस पैरामीटर से नतीजों पर भी असर पड़ सकता है.result_type— एक या उससे ज़्यादा पते के टाइप का फ़िल्टर. इन्हें पाइप (|) से अलग किया जाता है. अगर पैरामीटर में एक से ज़्यादा पते के टाइप शामिल हैं, तो एपीआई उन सभी पतों को दिखाता है जो किसी भी टाइप से मेल खाते हैं. प्रोसेसिंग के बारे में जानकारी:result_typeपैरामीटर, खोज को बताए गए पते के टाइप तक सीमित नहीं करता है. इसके बजाय,result_typeखोज के बाद लागू होने वाले फ़िल्टर के तौर पर काम करता है: API, तय किए गएlatlngके लिए सभी नतीजे फ़ेच करता है. इसके बाद, उन नतीजों को खारिज कर देता है जो तय किए गए पते के टाइप से मेल नहीं खाते. यहां दी गई वैल्यू इस्तेमाल की जा सकती हैं:पते के टाइप और पते के कॉम्पोनेंट के टाइप
जवाब में मौजूद
GeocodeResultबॉडी में मौजूदtypesऐरे, पते का टाइप दिखाता है. पते के टाइप के उदाहरणों में, सड़क का पता, देश या राजनैतिक इकाई शामिल है.GeocodeResultके मुख्य हिस्से में मौजूदAddressComponentsफ़ील्ड में मौजूदtypesकैटगरी, पते के हर हिस्से के टाइप के बारे में बताती है. उदाहरण के लिए, सड़क का नंबर या देश.पते कई तरह के हो सकते हैं. इन टाइप को 'टैग' माना जा सकता है. उदाहरण के लिए, कई शहरों को
politicalऔरlocalityटाइप के हिसाब से टैग किया गया है.ये टाइप इस्तेमाल किए जा सकते हैं और इन्हें पता टाइप और पते के कॉम्पोनेंट टाइप, दोनों ऐरे में दिखाया जाता है:
पते का प्रकार ब्यौरा street_addressमोहल्ले का सटीक पता. routeनाम वाला कोई रास्ता (जैसे, "US 101"). intersectionयह एक बड़ा चौराहा होता है. आम तौर पर, यह दो मुख्य सड़कों का चौराहा होता है. politicalकोई राजनैतिक इकाई. आम तौर पर, इस तरह के टाइप से किसी नागरिक प्रशासन के बहुभुज का पता चलता है. countryयह राष्ट्रीय राजनैतिक इकाई होती है. आम तौर पर, यह Geocoder से मिलने वाला सबसे बड़ा ऑर्डर टाइप होता है. 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नाम वाली कोई लोकप्रिय जगह. आम तौर पर, ये "पीओआई" ऐसी स्थानीय इकाइयां होती हैं जिन्हें किसी दूसरी कैटगरी में आसानी से नहीं रखा जा सकता. जैसे, "एम्पायर स्टेट बिल्डिंग" या "एफ़िल टावर". टाइप की खाली सूची से पता चलता है कि पते के किसी कॉम्पोनेंट के लिए कोई टाइप मौजूद नहीं है. उदाहरण के लिए, फ़्रांस में Lieu-dit.
location_type— एक या उससे ज़्यादा तरह की जगहों का फ़िल्टर. इन्हें पाइप (|) से अलग किया जाता है. अगर पैरामीटर में कई तरह की जगहें शामिल हैं, तो एपीआई उन सभी पतों को दिखाता है जो किसी भी टाइप से मेल खाते हैं. प्रोसेसिंग के बारे में जानकारी:location_typeपैरामीटर, खोज को बताई गई जगहों के टाइप तक सीमित नहीं करता. इसके बजाय,location_typeखोज के बाद लागू होने वाले फ़िल्टर के तौर पर काम करता है: एपीआई, तय किए गएlatlngके लिए सभी नतीजे फ़ेच करता है. इसके बाद, उन नतीजों को खारिज कर देता है जो तय की गई जगह के टाइप से मेल नहीं खाते. ये वैल्यू दिख सकती हैं:"ROOFTOP"सिर्फ़ उन पतों को दिखाता है जिनके लिए Google के पास सटीक जगह की जानकारी है. यह जानकारी, सड़क के पते के हिसाब से सटीक होती है."RANGE_INTERPOLATED"सिर्फ़ ऐसे पते दिखाता है जो दो सटीक पॉइंट (जैसे, चौराहे) के बीच इंटरपोलेट किए गए अनुमानित पते (आम तौर पर सड़क पर) दिखाते हैं. इंटरपोलेट की गई रेंज से आम तौर पर यह पता चलता है कि किसी सड़क के पते के लिए, छत के जियोकोड उपलब्ध नहीं हैं."GEOMETRIC_CENTER"सिर्फ़ किसी जगह के जियोमेट्रिक सेंटर दिखाता है. जैसे, पॉलीलाइन (उदाहरण के लिए, कोई सड़क) या पॉलीगॉन (क्षेत्र)."APPROXIMATE"सिर्फ़ उन पतों को दिखाता है जिन्हें अनुमानित पते के तौर पर मार्क किया गया है.
extra_computations— इस पैरामीटर का इस्तेमाल करके, जवाब में ये अतिरिक्त सुविधाएं शामिल करें:ADDRESS_DESCRIPTORS— ज़्यादा जानकारी के लिए, पता बताने वाले शब्द देखें.BUILDING_AND_ENTRANCES— ज़्यादा जानकारी के लिए, प्रवेश द्वार और बिल्डिंग की आउटलाइन देखें.
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 मीटर से कम होने की गारंटी है.