खास जानकारी
जियोकोडिंग (1600 Amphitheatre Parkway, Mountain View, CA) को भौगोलिक निर्देशांकों (जैसे अक्षांश 37.423021 और देशांतर -122.083739) में बदलने की प्रोसेस है, जिसका इस्तेमाल आप मार्कर लगाने या मैप पर जगह बनाने के लिए कर सकते हैं.
रिवर्स जियोकोडिंग, भौगोलिक निर्देशांकों को मानव आसानी से पढ़े जा सकने वाले पते में बदलने की प्रोसेस है. रिवर्स जियोकोडिंग (पता लुकअप) देखें.
किसी दिए गए जगह के आईडी का पता पता करने के लिए, एन्कोडर का इस्तेमाल भी किया जा सकता है.
Maps JavaScript API, जियोकोडिंग के लिए जियोकोडर क्लास और उपयोगकर्ता के इनपुट से डाइनैमिक तौर पर जियोकोडिंग की सुविधा देता है. अगर आपको भौगोलिक पते के स्टैटिक पते के बारे में जानना है, तो जियोकोडिंग वेब सेवा देखें.
YouTube पर शुरुआत करना
Maps JavaScript API में जियोकोडिंग सेवा का इस्तेमाल करने से पहले, आपको यह पक्का करना होगा कि Google Cloud Console में उसी प्रोजेक्ट में जियोकोडिंग एपीआई चालू हो जिसे आपने Maps JavaScript API में सेट अप किया है.
चालू किए गए एपीआई की सूची देखने के लिए:
- Google Cloud Console पर जाएं.
- कोई प्रोजेक्ट चुनें बटन पर क्लिक करें. इसके बाद, उसी प्रोजेक्ट को चुनें जिसे आपने Maps JavaScript एपीआई के लिए सेट अप किया है और खोलें पर क्लिक करें.
- डैशबोर्ड पर एपीआई की सूची में, जियोकोडिंग एपीआई खोजें.
- अगर आपको सूची में API दिखाई देता है, तो आप बिलकुल तैयार हैं. अगर एपीआई सूची में नहीं है, तो
उसे चालू करें:
- पेज पर सबसे ऊपर, लाइब्रेरी टैब दिखाने के लिए, ENABLE API चुनें. इसके अलावा, बाईं ओर मौजूद मेन्यू से लाइब्रेरी चुनें.
- जियोकोडिंग एपीआई खोजें. इसके बाद, इसे नतीजों की सूची में से चुनें.
- चालू करें को चुनें. प्रोसेस खत्म होने के बाद, डैशबोर्ड पर एपीआई की सूची में, जियोकोडिंग एपीआई दिखता है.
कीमत और नीतियां
कीमत
16 जुलाई, 2018 से, Maps, रास्ते, और जगहें, दोनों पर ही 'जितना इस्तेमाल करें, सिर्फ़ उतने पैसे चुकाएं' प्लान लागू हुआ है. JavaScript जियोकोडिंग सेवा के इस्तेमाल के लिए, नई कीमत और इस्तेमाल की सीमाओं के बारे में ज़्यादा जानने के लिए, जियोकोडिंग एपीआई का इस्तेमाल और बिलिंग देखें.
नीतियां
जियोकोडिंग सेवा का इस्तेमाल, जियोकोडिंग एपीआई के लिए बताई गई नीतियों के मुताबिक होना चाहिए.
जियोकोडिंग के अनुरोध
जियोकोडिंग सेवा को ऐक्सेस करने का काम एसिंक्रोनस है. ऐसा इसलिए, क्योंकि Google Maps API को किसी बाहरी सर्वर को कॉल करना होता है. इस वजह से, आपको अनुरोध पूरा होने पर कॉलबैक तरीका इस्तेमाल करना होगा. कॉलबैक का यह तरीका, नतीजों को प्रोसेस करता है. ध्यान दें कि Firebase एक से ज़्यादा नतीजों को दिखा सकता है.
आप google.maps.Geocoder
कंस्ट्रक्टर ऑब्जेक्ट के ज़रिए अपने कोड में Google Maps API जियोकोडिंग सेवा को ऐक्सेस करते हैं. Geocoder.geocode()
तरीके से,
जियोकोडिंग सेवा से जुड़ा एक अनुरोध शुरू होता है. इस तरीके से, यह GeocoderRequest
ऑब्जेक्ट लिटरल करता है जिसमें
इनपुट के शब्द होते हैं. साथ ही, रिस्पॉन्स मिलने पर
उसे लागू करने के लिए, कॉलबैक मैथड भी पास किया जाता है.
GeocoderRequest
ऑब्जेक्ट लिटरल में ये फ़ील्ड शामिल हैं:
{ address: string, location: LatLng, placeId: string, bounds: LatLngBounds, componentRestrictions: GeocoderComponentRestrictions, region: string }
ज़रूरी पैरामीटर: आपको नीचे दिए गए फ़ील्ड में से किसी एक को ही देना होगा:
address
— वह पता, जिसे आप भौगोलिक स्थान पर डालना चाहते हैं.
या
location
— वहLatLng
(याLatLngLiteral
) जिसके लिए आप सबसे नज़दीकी, आसानी से पढ़ा जा सकने वाला पता पाना चाहते हैं. भौगोलिक कोड रिवर्स भौगोलिक स्थान लागू करता है. ज़्यादा जानकारी के लिए, रिवर्स जियोकोडिंग देखें.
या
placeId
— उस जगह का जगह का आईडी जिसके लिए आप सबसे नज़दीक और आसानी से पढ़ा जा सकने वाला पता पाना चाहते हैं. जगह आईडी के लिए पता वापस पाने के बारे में ज़्यादा देखें.
ज़रूरी पैरामीटर:
bounds
— ऐसेLatLngBounds
, जिनमें पक्षपात करने वाले भौगोलिक नतीजों को ज़्यादा प्रमुखता से दिखाया जाता है.bounds
पैरामीटर सिर्फ़, पूरी तरह से पाबंदी वाले ऑब्जेक्ट पर असर डालेगा, न कि पूरी तरह से सीमित करेगा. नीचे दिए गए व्यूपोर्ट बायस के बारे में ज़्यादा जानकारी देखें.componentRestrictions
— इसका इस्तेमाल, खोज के नतीजों में किसी खास इलाके को दिखाने के लिए होता है. नीचे कॉम्पोनेंट फ़िल्टर के बारे में ज़्यादा जानकारी देखें.region
— क्षेत्र का कोड, जिसे दो वर्ण (बिना अंकों वाले) यूनिकोड क्षेत्र के सब-टैग के तौर पर बताया गया है. ज़्यादातर मामलों में, ये टैग सीधे जाने-पहचाने ccTLD ("टॉप लेवल डोमेन") के लिए, दो वर्णों वाले मान होते हैं.region
पैरामीटर सिर्फ़, पूरी तरह से पाबंदी वाले ऑब्जेक्ट के नतीजों पर असर डालेगा, न कि पूरी तरह से सीमित. क्षेत्र कोड के लिए बायस के बारे में ज़्यादा जानकारी यहां देखें.
जियोकोडिंग रिस्पॉन्स
जियोकोडिंग सेवा को कॉलबैक के तरीके की ज़रूरत होती है, ताकि वेब प्लैटफ़ॉर्मर के नतीजों को फिर से हासिल किया जा सके. इस कॉलबैक को दो पैरामीटर पास करने होंगे, ताकि इन्हें क्रम के हिसाब से results
और status
कोड में रखा जा सके.
जियोकोडिंग के नतीजे
GeocoderResult
ऑब्जेक्ट एक ही जियोकोडिंग नतीजा दिखाता है. भौगोलिक अनुरोध कई नतीजे ऑब्जेक्ट दिखा सकता है:
results[]: { types[]: string, formatted_address: string, address_components[]: { short_name: string, long_name: string, postcode_localities[]: string, types[]: string }, partial_match: boolean, place_id: string, postcode_localities[]: string, geometry: { location: LatLng, location_type: GeocoderLocationType viewport: LatLngBounds, bounds: LatLngBounds } }
इन फ़ील्ड के बारे में नीचे बताया गया है:
types[]
एक कलेक्शन है, जो दिखाए गए नतीजे के पते का टाइप बताता है. इस श्रेणी में शून्य या उससे ज़्यादा टैग का एक सेट है, जो नतीजे में दिखाई गई सुविधा के टाइप की पहचान करता है. उदाहरण के लिए, "शिकागो" का भौगोलिक स्थान "मोहल्ले" के नतीजे को दिखाता है जो यह बताता है कि "कोलकाता" एक शहर है और यह भी "राजनैतिक" नतीजे देता है जो दिखाता है कि वह एक राजनैतिक इकाई है. नीचे पते के टाइप और पते के कॉम्पोनेंट के बारे में ज़्यादा जानकारी देखें.formatted_address
एक स्ट्रिंग है, जिसमें इस जगह का वह पता होता है जिसे लोग पढ़ सकते हैं.अक्सर यह पता, डाक पते के बराबर होता है. ध्यान दें कि कुछ देश, जैसे कि यूनाइटेड किंगडम, लाइसेंस की पाबंदियों की वजह से सही डाक पते उपलब्ध कराने की अनुमति नहीं देते हैं.
फ़ॉर्मैट के हिसाब से दिए गए पते में एक या एक से ज़्यादा पते के कॉम्पोनेंट होते हैं. उदाहरण के लिए, पता "111 8th Avenue, New York, NY" में ये कॉम्पोनेंट शामिल होते हैं: "111" (सड़क का नंबर), "8वां ऐवेन्यू" (रास्ते), "न्यूयॉर्क" (शहर), और "NY" (अमेरिका का राज्य).
प्रोग्राम के हिसाब से, फ़ॉर्मैट किए गए पते को पार्स न करें. इसके बजाय, आपको अलग-अलग पते वाले कॉम्पोनेंट का इस्तेमाल करना चाहिए. इस एपीआई में, फ़ॉर्मैट किए गए पते वाले फ़ील्ड के साथ-साथ, एपीआई के जवाब भी शामिल होते हैं.
address_components[]
एक कैटगरी है, जिसमें इस पते पर लागू होने वाले अलग-अलग कॉम्पोनेंट शामिल होते हैं.आम तौर पर, पते के हर कॉम्पोनेंट में ये फ़ील्ड होते हैं:
types[]
एक कलेक्शन है, जो पते वाले कॉम्पोनेंट के टाइप की जानकारी देता है. इस्तेमाल किए जा सकने वाले टाइप की सूची देखें.long_name
, पूरे टेक्स्ट की जानकारी या जियोकोडर के दिए गए पते के कॉम्पोनेंट का नाम होता है.- अगर उपलब्ध हो, तो
short_name
पता टेक्स्ट के कॉम्पोनेंट का छोटा नाम होता है. उदाहरण के लिए, अलास्का राज्य के लिए पता के कॉम्पोनेंट में "अलास्का" काlong_name
और "AK" काshort_name
हो सकता है. इसके लिए, दो अक्षर वाले छोटे छोटे नाम का इस्तेमाल किया जाता है.
address_components[]
कलेक्शन के बारे में यह जानकारी दें:- पते के कलेक्शन में,
formatted_address
से ज़्यादा कॉम्पोनेंट हो सकते हैं. - यह ज़रूरी नहीं है कि श्रेणी में उन सभी राजनैतिक इकाइयों को शामिल किया गया हो जिनमें पता होता है. इनमें
formatted_address
में शामिल राजनैतिक इकाइयां भी शामिल होती हैं. किसी खास पते वाली सभी राजनैतिक इकाइयों को फिर से पाने के लिए, आपको पते के अक्षांश/देशांतर को अनुरोध के तौर पर पास करके, रिवर्स जियोकोडिंग का इस्तेमाल करना चाहिए. - यह ज़रूरी नहीं है कि रिस्पॉन्स का फ़ॉर्मैट, अनुरोधों के बीच एक जैसा ही रहे. खास तौर पर,
address_components
के लिए अनुरोध किए गए पते के आधार पर यह संख्या बदल सकती है. हालांकि, समय के साथ पते की संख्या बदल सकती है. कोई कॉम्पोनेंट, ऐरे में पोज़िशन बदल सकता है. कॉम्पोनेंट किस तरह का है, इसमें बदलाव किया जा सकता है. हो सकता है कि बाद में दिए गए जवाब में कोई खास कॉम्पोनेंट मौजूद न हो.
नीचे पते के टाइप और पते के कॉम्पोनेंट के बारे में ज़्यादा जानकारी देखें.
-
partial_match
से यह पता चलता है कि भौगोलिक अनुरोध में, मूल अनुरोध से पूरी तरह मेल नहीं खाता, हालांकि यह अनुरोध किए गए पते के हिस्से से पूरी तरह मेल खाता था. हो सकता है कि आप गलत स्पेलिंग और/या पते के अधूरे होने के मूल अनुरोध की जांच करना चाहें.आंशिक मिलान आम तौर पर उन मोहल्ले के पतों के लिए होते हैं जो उस इलाके में मौजूद नहीं होते हैं जिसे आप अनुरोध में पास करते हैं. अगर मिलते-जुलते अनुरोध, एक ही इलाके में दो या उससे ज़्यादा जगहों पर होते हैं, तो भी मिलते-जुलते नतीजे दिखाए जा सकते हैं. उदाहरण के लिए, "हिलपर सेंट, ब्रिस्टल, यूके" हेनरी स्ट्रीट और हेनरीएटा स्ट्रीट, दोनों के लिए एक आंशिक मिलान दिखाएगा. ध्यान दें कि अगर किसी अनुरोध में गलत वर्तनी वाला पता शामिल है, तो जियोकोडिंग सेवा किसी दूसरे पते का सुझाव दे सकती है. इस तरह से ट्रिगर किए गए सुझावों को भी एक मिलते-जुलते वीडियो के तौर पर मार्क किया जाएगा.
place_id
किसी जगह का यूनीक आइडेंटिफ़ायर है, जिसका इस्तेमाल Google के अन्य एपीआई के साथ किया जा सकता है. उदाहरण के लिए, Google Places एपीआई लाइब्रेरी के साथplace_id
इस्तेमाल करके, किसी स्थानीय कारोबार, कारोबार के खुले होने का समय, उपयोगकर्ताओं की समीक्षाओं वगैरह के बारे में जानकारी ली जा सकती है. जगह के आईडी की खास जानकारी देखें.postcode_localities[]
एक कलेक्शन है, जो पिन कोड में शामिल सभी इलाकों को दिखाता है. यह सिर्फ़ तब दिखता है, जब नतीजे में एक पिन कोड शामिल होता है, जिसमें एक से ज़्यादा इलाके शामिल होते हैं.geometry
में यह जानकारी शामिल है:location
में भौगोलिक अक्षांश,देशांतर वैल्यू शामिल है. ध्यान दें कि हम इस जगह कोLatLng
स्ट्रिंग के तौर पर दिखाते हैं, न कि फ़ॉर्मैट की गई स्ट्रिंग के तौर पर.location_type
, बताई गई जगह के बारे में ज़्यादा डेटा सेव करता है. फ़िलहाल, इन वैल्यू का इस्तेमाल किया जा सकता है:ROOFTOP
से पता चलता है कि दिखाए गए नतीजे में, सही भौगोलिक जगह दिखती है.RANGE_INTERPOLATED
यह बताता है कि दिखाया गया नतीजा, दो सटीक बिंदुओं (जैसे, चौराहों) के बीच एक अनुमान (आम तौर पर किसी सड़क पर) है. आम तौर पर, ऐसे सिग्नल तब दिखाए जाते हैं, जब छत के पते किसी मोहल्ले के पते के लिए उपलब्ध नहीं होते.GEOMETRIC_CENTER
से यह पता चलता है कि दिखाया गया नतीजा, पॉलीलाइन (जैसे, कोई सड़क) या पॉलीगॉन (क्षेत्र) जैसे खोज के नतीजे का ज्यामिति केंद्र है.APPROXIMATE
से पता चलता है कि नतीजे के तौर पर मिला नतीजा अनुमानित है.
viewport
, दिखाए गए नतीजे के लिए, सुझाए गए व्यूपोर्ट को सेव करता है.bounds
(ज़रूरी नहीं है)LatLngBounds
को सेव करता है, जिसमें दिखाए गए नतीजे को पूरी तरह से शामिल किया जा सकता है. ध्यान दें कि ये सीमाएं, सुझाए गए व्यूपोर्ट से मेल नहीं खा सकतीं. (उदाहरण के लिए, सैन फ़्रांसिस्को में फ़ैरॉन द्वीप समूह शामिल हैं, जो तकनीकी रूप से शहर का हिस्सा हैं, लेकिन व्यूपोर्ट में नहीं लौटाए जाने चाहिए.)
पते को ब्राउज़र की पसंदीदा भाषा सेटिंग का इस्तेमाल करके या
language
पैरामीटर का इस्तेमाल करके, एपीआई JavaScript लोड करते समय, तय की गई भाषा में दिया जाएगा. (ज़्यादा जानकारी के लिए,
स्थानीय भाषा बदलना देखें.)
पते के टाइप और पते से जुड़े कॉम्पोनेंट के टाइप
GeocoderResult में types[]
कैटगरी से पता चलता है कि पता किस तरह का है. किसी खास तरह के पते के कॉम्पोनेंट के बारे में बताने के लिए,
GeocoderAddresscomponent
में types[]
कलेक्शन भी दिखाया जा सकता है. भौगोलिक पते से दिए गए
पते कई तरह के हो सकते हैं, इसलिए उन्हें टैग माना जा सकता है.
उदाहरण के लिए, कई शहरों को political
और locality
के साथ टैग किया गया है.
पते वाले और पते के कॉम्पोनेंट टाइप, दोनों में ही इन टाइप के डेटा का इस्तेमाल किया जा सकता है और ये भौगोलिक पते पर काम कर सकते हैं:
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
रुचि के पसंदीदा नाम को दर्शाता है. आम तौर पर, "पीओआई" ऐसी मुख्य स्थानीय इकाइयां होती हैं जो आसानी से किसी दूसरी कैटगरी में नहीं आती हैं, जैसे "एंपायर स्टेट बिल्डिंग" या "एफ़िल टावर".
टाइप की खाली सूची से यह पता चलता है कि पते के खास कॉम्पोनेंट के लिए कोई टाइप मौजूद नहीं है. उदाहरण के लिए, फ़्रांस में लियू-डिट.
ऊपर दिए गए पते के कॉम्पोनेंट के अलावा, पते के कॉम्पोनेंट में ये टाइप शामिल हो सकते हैं.
ध्यान दें: इस सूची में पूरी जानकारी नहीं है और इसमें बदलाव किया जा सकता है.
floor
, इमारत के पते का फ़्लोर दिखाता है.- आम तौर पर,
establishment
ऐसी जगह के बारे में बताता है जिसे अब तक कैटगरी में नहीं डाला गया है. landmark
, आस-पास की ऐसी जगह दिखाता है जिसका इस्तेमाल रेफ़रंस के तौर पर किया जाता है. इससे, नेविगेशन में मदद मिलती है.point_of_interest
रुचि के पसंदीदा नाम को दर्शाता है.parking
पार्किंग की जगह या पार्किंग का संकेत देता है.post_box
से किसी खास पिन बॉक्स का पता चलता है.postal_town
,locality
औरsublocality
जैसे भौगोलिक इलाकों के ग्रुप को दिखाता है, जिनका इस्तेमाल कुछ देशों में डाक से पते भेजने के लिए किया जाता है.room
से पता चलता है कि इमारत का पता, मीटिंग रूम का है.street_number
सटीक सड़क संख्या दिखाता है.bus_station
,train_station
, औरtransit_station
से किसी बस, ट्रेन या सार्वजनिक परिवहन के स्टॉप की जगह की जानकारी मिलती है.
स्टेटस कोड
status
कोड इनमें से कोई एक वैल्यू दिखा सकता है:
"OK"
से पता चलता है कि कोई गड़बड़ी नहीं हुई है. साथ ही, पते को पार्स कर दिया गया है और कम से कम एक वेब पेज दिखाया गया है."ZERO_RESULTS"
से पता चलता है कि वेबपेज सही से काम कर रहा है, लेकिन कोई नतीजा नहीं मिला. ऐसा तब हो सकता है, जब GCLID को किसी गैर-मौजूदaddress
से पास किया गया हो."OVER_QUERY_LIMIT"
यह बताता है कि आप अपने कोटे से ज़्यादा हैं."REQUEST_DENIED"
यह बताता है कि आपका अनुरोध अस्वीकार कर दिया गया है. वेब पेज को जियोकोडर का इस्तेमाल करने की अनुमति नहीं है.- आम तौर पर,
"INVALID_REQUEST"
से पता चलता है कि क्वेरी (address
,components
याlatlng
) मौजूद नहीं है. "UNKNOWN_ERROR"
यह बताता है कि सर्वर की गड़बड़ी की वजह से, अनुरोध को प्रोसेस नहीं किया जा सका. दोबारा कोशिश करने पर, हो सकता है कि आपका अनुरोध स्वीकार न हो."ERROR"
यह बताता है कि अनुरोध का समय खत्म हो गया है या Google सर्वर से संपर्क करने में कोई समस्या हुई. दोबारा कोशिश करने पर, हो सकता है कि आपका अनुरोध स्वीकार न हो.
इस उदाहरण में, हमने पते को भौगोलिक रूप से चुना है और अक्षांश और देशांतर की वैल्यू पर मार्कर रखा है. ध्यान दें कि हैंडलर, पहचान छिपाने वाले फ़ंक्शन लिटरल में पास हो गया है.
var geocoder; var map; function initialize() { geocoder = new google.maps.Geocoder(); var latlng = new google.maps.LatLng(-34.397, 150.644); var mapOptions = { zoom: 8, center: latlng } map = new google.maps.Map(document.getElementById('map'), mapOptions); } function codeAddress() { var address = document.getElementById('address').value; geocoder.geocode( { 'address': address}, function(results, status) { if (status == 'OK') { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } else { alert('Geocode was not successful for the following reason: ' + status); } }); } <body onload="initialize()"> <div id="map" style="width: 320px; height: 480px;"></div> <div> <input id="address" type="textbox" value="Sydney, NSW"> <input type="button" value="Encode" onclick="codeAddress()"> </div> </body>
व्यूपोर्ट मापदंड तय करना
दिए गए व्यूपोर्ट (इसे बाउंडिंग बॉक्स के तौर पर दिखाया जाता है) में दिखने वाले नतीजों को प्राथमिकता देने के लिए, जियोकोडिंग सेवा को निर्देश दें. ऐसा करने के लिए,
GeocoderRequest
ऑब्जेक्ट लिटरल में bounds
पैरामीटर
सेट करें, ताकि इस व्यूपोर्ट की सीमाओं को तय किया जा सके. ध्यान दें कि पक्षपात करने से, सीमाओं में सिर्फ़ नतीजों को प्राथमिकता मिलता है. अगर इन सीमाओं के बाहर ज़्यादा काम के नतीजे मौजूद हैं, तो उन्हें शामिल किया जा सकता है.
उदाहरण के लिए, "विनेटका" के लिए भौगोलिक स्थान आम तौर पर शिकागो के इस उपनगरीय क्षेत्र में लौटता है:
{ "types":["locality","political"], "formatted_address":"Winnetka, IL, USA", "address_components":[{ "long_name":"Winnetka", "short_name":"Winnetka", "types":["locality","political"] },{ "long_name":"Illinois", "short_name":"IL", "types":["administrative_area_level_1","political"] },{ "long_name":"United States", "short_name":"US", "types":["country","political"] }], "geometry":{ "location":[ -87.7417070, 42.1083080], "location_type":"APPROXIMATE" }, "place_id": "ChIJW8Va5TnED4gRY91Ng47qy3Q" }
हालांकि, लॉस एंजेलिस की सैन फ़र्नांडो वैली के लिए बाउंडिंग बॉक्स की जानकारी देने वाला bounds
पैरामीटर तय करने से, इस भौगोलिक स्थान में उस जगह "Winnetka" नाम के इलाके को फिर से दिखाया जाता है:
{ "types":["sublocality","political"], "formatted_address":"Winnetka, California, USA", "address_components":[{ "long_name":"Winnetka", "short_name":"Winnetka", "types":["sublocality","political"] },{ "long_name":"Los Angeles", "short_name":"Los Angeles", "types":["administrative_area_level_3","political"] },{ "long_name":"Los Angeles", "short_name":"Los Angeles", "types":["administrative_area_level_2","political"] },{ "long_name":"California", "short_name":"CA", "types":["administrative_area_level_1","political"] },{ "long_name":"United States", "short_name":"US", "types":["country","political"] }], "geometry":{ "location": [34.213171,-118.571022], "location_type":"APPROXIMATE" }, "place_id": "ChIJ0fd4S_KbwoAR2hRDrsr3HmQ" }
क्षेत्र कोड का मापदंड तय करना
किसी जगह के खोज नतीजे दिखाने के लिए, जियोकोडिंग सेवा की वैल्यू सेट की जा सकती है.
इसके लिए, region
पैरामीटर का इस्तेमाल किया जा सकता है. यह पैरामीटर, क्षेत्र का कोड लेता है. इसे दो वर्ण वाले (बिना अंक वाले) यूनिकोड
क्षेत्र के सबटैग के तौर पर बताया जाता है. ये टैग सीधे, जाने-पहचाने ccTLD ("टॉप लेवल डोमेन")
में दो वर्ण वाले मान होते हैं, जैसे कि "co.uk" में "uk". कुछ मामलों में, region
टैग, ISO-3166-1 कोड के साथ भी काम करता है. यह कभी-कभी ccTLD वैल्यू से अलग होता है, जैसे कि "ग्रेट ब्रिटेन" के लिए "GB".
region
पैरामीटर का इस्तेमाल करते समय:
- सिर्फ़ एक देश या इलाका डालें. एक से ज़्यादा वैल्यू को अनदेखा किया जाता है और उसकी वजह से अनुरोध पूरा नहीं हो पाता.
- सिर्फ़ दो वर्णों वाले क्षेत्र के सबटैग (यूनिकोड CLDR फ़ॉर्मैट) का इस्तेमाल करें. दूसरे सभी इनपुट की वजह से गड़बड़ियां होंगी.
- सिर्फ़ उन देशों और इलाकों में उपलब्ध हैं जिन्हें Google Maps Platform कवरेज की जानकारी में शामिल किया गया है.
हर उस डोमेन के लिए जियोकोडिंग अनुरोध भेजे जा सकते हैं जहां मुख्य Google Maps ऐप्लिकेशन में जियोकोडिंग की सुविधा है. ध्यान दें कि पक्षपात किसी खास डोमेन के लिए नतीजों को सिर्फ़ प्राथमिकता देता है. अगर इस डोमेन के बाहर ज़्यादा काम के नतीजे मौजूद हैं, तो उन्हें शामिल किया जा सकता है.
उदाहरण के लिए, "Toledo" के लिए एक भौगोलिक पेज इस नतीजे को दिखाता है, क्योंकि जियोकोडिंग सेवा के लिए डिफ़ॉल्ट डोमेन अमेरिका पर सेट है:
{ "types":["locality","political"], "formatted_address":"Toledo, OH, USA", "address_components":[{ "long_name":"Toledo", "short_name":"Toledo", "types":["locality","political"] },{ "long_name":"Ohio", "short_name":"OH", "types":["administrative_area_level_1","political"] },{ "long_name":"United States", "short_name":"US", "types":["country","political"] }], "place_id": "ChIJeU4e_C2HO4gRRcM6RZ_IPHw" }
'es'
(स्पेन) पर सेट region
फ़ील्ड के साथ "Toledo" का भौगोलिक स्थान स्पैनिश शहर दिखाएगा:
{ "types":["locality","political"], "formatted_address":"Toledo, España", "address_components":[{ "long_name":"Toledo", "short_name":"Toledo", "types":["locality","political"] },{ "long_name":"Toledo", "short_name":"TO", "types":["administrative_area_level_2","political"] },{ "long_name":"Castilla-La Mancha", "short_name":"CM", "types":["administrative_area_level_1","political"] },{ "long_name":"España", "short_name":"ES", "types":["country","political"] }], "place_id": "ChIJ8f21C60Lag0R_q11auhbf8Y" }
कॉम्पोनेंट के हिसाब से फ़िल्टर करना
पते के हिसाब से नतीजे दिखाने के लिए, जियोकोडिंग सेवा को किसी खास इलाके तक सीमित करने के लिए, कॉम्पोनेंट फ़िल्टर का इस्तेमाल करें.
componentRestrictions
पैरामीटर में, फ़िल्टर के बारे में बताएं. फ़िल्टर वैल्यू में वर्तनी (स्पेलिंग) को ठीक करने के तरीके और आंशिक तरीके से मिलान करने के अन्य तरीके इस्तेमाल किए जा सकते हैं.
Firebase सिर्फ़ वे नतीजे दिखाता है जो सभी कॉम्पोनेंट फ़िल्टर से मेल खाते हैं. इसका मतलब है कि यह फ़िल्टर स्पेसिफ़िकेशन का आकलन AND के तौर पर नहीं, बल्कि OR के तौर पर करता है.
कॉम्पोनेंट फ़िल्टर में, इनमें से एक या एक से ज़्यादा आइटम होते हैं:
route
, रास्ते के लंबे या छोटे नाम से मेल खाता है.locality
मोहल्ले और उप-मोहल्ले के टाइप से मैच होता है.administrativeArea
, एडमिन के लेवल के सभी लेवल से मेल खाता है.postalCode
पिन कोड और पिन कोड के मिलान से मेल खाता है.country
, किसी देश के नाम या दो अक्षर ISO 3166-1 देश कोड से मेल खाता हो. ध्यान दें: एपीआई, उस देश के ISO मानक के मुताबिक होता है जहां देश के लिए तय किया गया ISO कोड इस्तेमाल किया जाता है.
नीचे दिए गए उदाहरण में, country
और postalCode
के हिसाब से फ़िल्टर करने के लिए,
componentRestrictions
पैरामीटर का इस्तेमाल किया गया है:
function codeAddress() { geocoder.geocode({ componentRestrictions: { country: 'AU', postalCode: '2000' } }, function(results, status) { if (status == 'OK') { map.setCenter(results[0].geometry.location); var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location }); } else { window.alert('Geocode was not successful for the following reason: ' + status); } }); }
रिवर्स जियोकोडिंग (पता लुकअप)
आम तौर पर, जियोकोडिंग शब्द का मतलब है कि मैप पर मौजूद ऐसी जगह का अनुवाद किया जाए जिसे लोग पढ़ सकें. इसके उलट, मैप पर किसी जगह का अनुवाद करने की प्रक्रिया को रिवर्स जियोकोडिंग कहते हैं.
address
के लिए टेक्स्ट देने के बजाय, location
पैरामीटर में कॉमा लगाकर अलग किए गए अक्षांश/देशांतर की जोड़ी डालें.
नीचे दिया गया उदाहरण, अक्षांश/देशांतर वैल्यू को वेब पते पर रखता है और मैप को लोकेशन पर सेट करता है. फ़ॉर्मैट में मौजूद पते के साथ, जानकारी वाली विंडो दिखाता है:
TypeScript
function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 8, center: { lat: 40.731, lng: -73.997 }, } ); const geocoder = new google.maps.Geocoder(); const infowindow = new google.maps.InfoWindow(); (document.getElementById("submit") as HTMLElement).addEventListener( "click", () => { geocodeLatLng(geocoder, map, infowindow); } ); } function geocodeLatLng( geocoder: google.maps.Geocoder, map: google.maps.Map, infowindow: google.maps.InfoWindow ) { const input = (document.getElementById("latlng") as HTMLInputElement).value; const latlngStr = input.split(",", 2); const latlng = { lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1]), }; geocoder .geocode({ location: latlng }) .then((response) => { if (response.results[0]) { map.setZoom(11); const marker = new google.maps.Marker({ position: latlng, map: map, }); infowindow.setContent(response.results[0].formatted_address); infowindow.open(map, marker); } else { window.alert("No results found"); } }) .catch((e) => window.alert("Geocoder failed due to: " + e)); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 8, center: { lat: 40.731, lng: -73.997 }, }); const geocoder = new google.maps.Geocoder(); const infowindow = new google.maps.InfoWindow(); document.getElementById("submit").addEventListener("click", () => { geocodeLatLng(geocoder, map, infowindow); }); } function geocodeLatLng(geocoder, map, infowindow) { const input = document.getElementById("latlng").value; const latlngStr = input.split(",", 2); const latlng = { lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1]), }; geocoder .geocode({ location: latlng }) .then((response) => { if (response.results[0]) { map.setZoom(11); const marker = new google.maps.Marker({ position: latlng, map: map, }); infowindow.setContent(response.results[0].formatted_address); infowindow.open(map, marker); } else { window.alert("No results found"); } }) .catch((e) => window.alert("Geocoder failed due to: " + e)); } window.initMap = initMap;
सैंपल आज़माएं
ध्यान दें कि पिछले उदाहरण में हमने results[0]
चुनकर, पहला नतीजा दिखाया था. रिवर्स भौगोलिक स्थान अक्सर एक से ज़्यादा नतीजे
दिखाता है. भौगोलिक पते, सिर्फ़ डाक पते नहीं होते, बल्कि भौगोलिक तौर पर किसी जगह को नाम देने का भी एक तरीका है. उदाहरण के लिए, शिकागो शहर में किसी पॉइंट को
जियोकोड करने के दौरान, भौगोलिक पॉइंट को मोहल्ले के पते (शहर, शिकागो) के रूप में, और इसके देश (इलिनॉय) या किसी देश (अमेरिका) के तौर पर लेबल किया जा सकता है. ये सभी, एन्कोडर के पते हैं. रिवर्स जियोकोडर ये सभी नतीजे
दिखाता है.
रिवर्स भौगोलिक स्थान, राजनैतिक इकाइयों (देशों, प्रांतों, शहरों और पड़ोस), मोहल्ले के पतों, और पिन कोड से मेल खाता है.
यहां उन पतों की सूची का उदाहरण दिया गया है जो ऊपर दी गई क्वेरी से मिल सकते हैं:
results[0].formatted_address: "277 Bedford Ave, Brooklyn, NY 11211, USA" results[1].formatted_address: "Grand St/Bedford Av, Brooklyn, NY 11211, USA" results[2].formatted_address: "Williamsburg, Brooklyn, NY, USA" results[3].formatted_address: "Brooklyn, NY, USA" results[4].formatted_address: "New York, NY, USA" results[5].formatted_address: "Brooklyn, NY 11211, USA" results[6].formatted_address: "Kings County, NY, USA" results[7].formatted_address: "New York-Northern New Jersey-Long Island, NY-NJ-PA, USA" results[8].formatted_address: "New York Metropolitan Area, USA" results[9].formatted_address: "New York, USA"
पतों को सबसे अच्छे मेल खाने वाले क्रम में लौटाया जाता है. आम तौर पर, इस मामले में सटीक नतीजे के तौर पर, खोज के नतीजों में सबसे सटीक नतीजे दिखते हैं.
ध्यान दें कि हम सबसे खास मोहल्ले के पते से लेकर आस-पड़ोस, शहर, काउंटी, राज्य वगैरह जैसे अलग-अलग तरह के पते दिखाते हैं. अगर आप ज़्यादा सामान्य पते का मिलान करना चाहते हैं, तो आप results[].types
फ़ील्ड की जांच कर सकते हैं.
ध्यान दें: रिवर्स जियोकोडिंग सटीक विज्ञान नहीं है. एन्कोडर किसी खास तरीके से, सबसे नज़दीकी पते का पता लगाने की कोशिश करेगा.
जगह का आईडी पाने के लिए किया गया पता
दिए गए स्थान आईडी का पता ढूंढने के लिए placeId
डालें. जगह का आईडी एक यूनीक आइडेंटिफ़ायर होता है, जिसका इस्तेमाल अन्य Google API के साथ किया जा सकता है. उदाहरण के लिए, आप किसी फटाफट पते की जानकारी पाने के लिए, Roads API से मिला placeId
की जानकारी दे सकते हैं. जगह के आईडी के बारे में ज़्यादा जानने के लिए, जगह के आईडी की खास जानकारी देखें.
placeId
सबमिट करने पर, अनुरोध में इनमें से कोई भी फ़ील्ड नहीं हो सकता:
address
latLng
location
componentRestrictions
इस उदाहरण में, जगह का आईडी स्वीकार किया गया है. साथ ही, जगह का पता दिया गया है, और मैप को उस जगह पर फ़ोकस किया गया है. साथ ही, यह जानकारी वाली एक विंडो भी दिखाती है. इस विंडो में, काम की जगह का फ़ॉर्मैट शामिल होता है:
TypeScript
// Initialize the map. function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 8, center: { lat: 40.72, lng: -73.96 }, } ); const geocoder = new google.maps.Geocoder(); const infowindow = new google.maps.InfoWindow(); (document.getElementById("submit") as HTMLElement).addEventListener( "click", () => { geocodePlaceId(geocoder, map, infowindow); } ); } // This function is called when the user clicks the UI button requesting // a geocode of a place ID. function geocodePlaceId( geocoder: google.maps.Geocoder, map: google.maps.Map, infowindow: google.maps.InfoWindow ) { const placeId = (document.getElementById("place-id") as HTMLInputElement) .value; geocoder .geocode({ placeId: placeId }) .then(({ results }) => { if (results[0]) { map.setZoom(11); map.setCenter(results[0].geometry.location); const marker = new google.maps.Marker({ map, position: results[0].geometry.location, }); infowindow.setContent(results[0].formatted_address); infowindow.open(map, marker); } else { window.alert("No results found"); } }) .catch((e) => window.alert("Geocoder failed due to: " + e)); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
// Initialize the map. function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 8, center: { lat: 40.72, lng: -73.96 }, }); const geocoder = new google.maps.Geocoder(); const infowindow = new google.maps.InfoWindow(); document.getElementById("submit").addEventListener("click", () => { geocodePlaceId(geocoder, map, infowindow); }); } // This function is called when the user clicks the UI button requesting // a geocode of a place ID. function geocodePlaceId(geocoder, map, infowindow) { const placeId = document.getElementById("place-id").value; geocoder .geocode({ placeId: placeId }) .then(({ results }) => { if (results[0]) { map.setZoom(11); map.setCenter(results[0].geometry.location); const marker = new google.maps.Marker({ map, position: results[0].geometry.location, }); infowindow.setContent(results[0].formatted_address); infowindow.open(map, marker); } else { window.alert("No results found"); } }) .catch((e) => window.alert("Geocoder failed due to: " + e)); } window.initMap = initMap;