आम तौर पर, जियोकोडिंग शब्द का मतलब ऐसे पते से होता है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. मैप पर मौजूद किसी जगह का अनुवाद, पढ़ने में आसान पते में करने पर, इसके उलट करने की प्रोसेस को रिवर्स जियोकोडिंग कहा जाता है.
रिवर्स जियोकोडिंग अनुरोध
ज़रूरी पैरामीटर
latlng
— अक्षांश और देशांतर के निर्देशांक से, उस जगह का पता चलता है जहां आपको सबसे नज़दीकी और देशांतर का पता डालना है.key
— आपके ऐप्लिकेशन की API कुंजी. यह कुंजी, कोटा प्रबंधन के लिए आपके ऐप्लिकेशन की पहचान करती है. कुंजी पाने का तरीका जानें.
ज़रूरी नहीं पैरामीटर
ये कुछ वैकल्पिक पैरामीटर हैं जिन्हें रिवर्स जियोकोडिंग के अनुरोध में शामिल किया जा सकता है:
language
— वह भाषा जिसमें नतीजे देने हैं.- इस्तेमाल की जा सकने वाली भाषाओं की सूची देखें. Google अक्सर इस्तेमाल की जाने वाली भाषाओं को अपडेट करता रहता है. इसलिए, हो सकता है कि यह सूची पूरी न हो.
- अगर
language
नहीं दिया गया है, तो जियोकोडर,Accept-Language
हेडर में बताई गई पसंदीदा भाषा या उस डोमेन की मूल भाषा का इस्तेमाल करने की कोशिश करता है जिससे अनुरोध भेजा गया है. - जियोकोडर, मोहल्ले का ऐसा पता देने की पूरी कोशिश करता है जिसे उपयोगकर्ता और स्थानीय लोग आसानी से पढ़ सकें. इस लक्ष्य को पूरा करने के लिए, यह स्थानीय भाषा में मोहल्लों के पते दिखाता है. साथ ही, ज़रूरत पड़ने पर उपयोगकर्ता की पढ़ने लायक स्क्रिप्ट में ट्रांसलिट्रेट किया जाता है. साथ ही, पसंदीदा भाषा को भी ध्यान में रखता है. इसके अलावा, बाकी सभी पते अपनी पसंदीदा भाषा में दिखाए जाते हैं. पते के सभी कॉम्पोनेंट उसी भाषा में दिखाए जाते हैं जिसे पहले कॉम्पोनेंट से चुना जाता है.
- अगर पसंदीदा भाषा में कोई नाम उपलब्ध नहीं है, तो जियोकोडर सबसे मिलते-जुलते नाम का इस्तेमाल करता है.
region
— क्षेत्र का कोड, जिसे ccTLD ("टॉप लेवल डोमेन") दो वर्णों की वैल्यू के तौर पर बताया गया है. पैरामीटर, लागू कानून के आधार पर नतीजों पर भी असर डाल सकता है.result_type
— एक या एक से ज़्यादा तरह के पतों का फ़िल्टर, जिन्हें पाइप (|
) से अलग किया जाता है. अगर पैरामीटर में एक से ज़्यादा तरह के पते होते हैं, तो एपीआई इनमें से किसी भी तरह के पते से मेल खाने वाले सभी पते दिखाता है. प्रोसेस करने के बारे में एक ज़रूरी जानकारी:result_type
पैरामीटर, दिए गए पते(पतों) के लिए खोज को restrict नहीं करता. इसके बजाय,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
, कोड में बदली गई जगह की जानकारी के रेफ़रंस को दिखाता है, जो अक्षांश और देशांतर से मिलता है. प्लस कोड का इस्तेमाल, उन जगहों पर मोहल्ले के पतों की जगह पर किया जा सकता है जहां कोई मौजूद नहीं है (जहां इमारतों को नंबर नहीं दिया गया है या सड़कों के नाम नहीं दिए गए हैं). ज़्यादा जानकारी के लिए https://plus.codes देखें.postal_code
एक पिन कोड के बारे में बताता है, जिसका इस्तेमाल किसी देश के डाक का पता लगाने के लिए किया जाता है.natural_feature
एक प्रमुख प्राकृतिक सुविधा दिखाता है.airport
, हवाई अड्डे का मतलब है.park
, नाम वाले पार्क के बारे में बताता है.point_of_interest
, नाम वाले पसंदीदा विषय को दिखाता है. आम तौर पर, ये "लोकप्रिय जगह" ऐसी मुख्य स्थानीय इकाइयां होती हैं जो किसी अन्य कैटगरी में आसानी से फ़िट नहीं होती. जैसे, "एंपायर स्टेट बिल्डिंग" या "कुतुब मीनार".
location_type
— एक या ज़्यादा तरह की जगहों का फ़िल्टर, जिन्हें पाइप (|
) से अलग किया जाता है. अगर पैरामीटर में एक से ज़्यादा तरह की जगहें होती हैं, तो एपीआई इनमें से किसी भी टाइप से मेल खाने वाले सभी पते दिखाता है. प्रोसेस करने के बारे में एक ज़रूरी जानकारी:location_type
पैरामीटर, किसी खास तरह की जगह के लिए खोज को restrict नहीं करता. इसके बजाय,location_type
, खोज के बाद वाले फ़िल्टर की तरह काम करता है: एपीआई तय किए गएlatlng
के लिए सभी नतीजे फ़ेच करता है. इसके बाद, यह उन नतीजों को खारिज कर देता है जो तय की गई जगह के टाइप से मेल नहीं खाते. ये वैल्यू इस्तेमाल की जा सकती हैं:"ROOFTOP"
सिर्फ़ उन पतों की जानकारी दिखाता है जिनके लिए Google के पास मोहल्ले का पता सटीक होने तक जगह की सटीक जानकारी होती है."RANGE_INTERPOLATED"
सिर्फ़ ऐसे पतों की जानकारी देता है जो दो सटीक पॉइंट (जैसे, चौराहों) के बीच इंटरपोलेट किए गए अनुमान (आम तौर पर सड़क पर) दिखाते हैं. इंटरपोलेट की गई रेंज आम तौर पर यह बताती है कि किसी मोहल्ले के पते के लिए, छत पर जियोकोड मौजूद नहीं हैं."GEOMETRIC_CENTER"
, किसी जगह के सिर्फ़ ज्यामितीय केंद्र दिखाता है, जैसे कि पॉलिलाइन (उदाहरण के लिए, सड़क) या पॉलीगॉन (क्षेत्र)."APPROXIMATE"
सिर्फ़ वे पते दिखाता है जिन्हें अनुमान के तौर पर मार्क किया जाता है.
extra_computations
— इस पैरामीटर के लिए सिर्फ़ADDRESS_DESCRIPTORS
वैल्यू की अनुमति है. ज़्यादा जानकारी के लिए पते के डिस्क्रिप्टर देखें.
अगर 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
टाइप और प्लस कोड वाले पते के साथ Geocoding के पूरे नतीजे का डेटा शामिल होता है. डिकोड किए गए प्लस कोड और अनुरोध पॉइंट के बीच की दूरी 10 मीटर से कम होती है.