खास जानकारी
जियोकोडिंग, पतों को भौगोलिक निर्देशांक में बदलने की प्रोसेस है. जैसे, "1600 Amphitheatre Parkway, Mountain View, CA" को अक्षांश 37.423021 और देशांतर -122.083739 में बदलना. इन निर्देशांकों का इस्तेमाल, मार्कर डालने या मैप की जगह तय करने के लिए किया जा सकता है.
रिवर्स जियोकोडिंग, भौगोलिक निर्देशांकों को ऐसे पते में बदलने की प्रोसेस है जिसे इंसान पढ़ सके. रिवर्स जियोकोडिंग (पता लुकअप) देखें.
किसी दिए गए जगह के आईडी का पता ढूंढने के लिए भी, जियोकोडर का इस्तेमाल किया जा सकता है.
Maps JavaScript API, उपयोगकर्ता के इनपुट से डाइनैमिक तौर पर जियोकोडिंग और रिवर्स जियोकोडिंग करने के लिए, Geocoder क्लास उपलब्ध कराता है. अगर इसके बजाय आपको स्टैटिक, जाने-पहचाने पतों को जियोकोड करना है, तो जियोकोडिंग वेब सेवा देखें.
अपनी प्रोफ़ाइल बनाना शुरू करें
Maps JavaScript API में जियोकोडिंग सेवा का इस्तेमाल करने से पहले, पहले यह पक्का करें कि Google Cloud Console में, उसी प्रोजेक्ट में जियोकोडिंग एपीआई चालू हो जिसे आपने Maps JavaScript API के लिए सेट अप किया है.
चालू किए गए एपीआई की सूची देखने के लिए:
- Google Cloud Console पर जाएं.
- कोई प्रोजेक्ट चुनें बटन पर क्लिक करें. इसके बाद, Maps JavaScript API के लिए सेट अप किया गया प्रोजेक्ट चुनें और खोलें पर क्लिक करें.
- डैशबोर्ड पर मौजूद एपीआई की सूची में, Geocoding API ढूंढें.
- अगर आपको सूची में एपीआई दिखता है, तो इसका मतलब है कि आपका खाता सेट अप हो गया है. अगर एपीआई सूची में नहीं है, तो इसे चालू करें:
- लाइब्रेरी टैब देखने के लिए, पेज पर सबसे ऊपर, एपीआई चालू करें चुनें. इसके अलावा, बाईं ओर मौजूद मेन्यू में, लाइब्रेरी चुनें.
- Geocoding API खोजें. इसके बाद, नतीजों की सूची से उसे चुनें.
- चालू करें को चुनें. प्रोसेस पूरी होने के बाद, डैशबोर्ड पर एपीआई की सूची में Geocoding API दिखता है.
कीमत और नीतियां
कीमत
JavaScript जियोकोडिंग सेवा के लिए कीमत और इस्तेमाल की नीतियों के बारे में जानने के लिए, Geocoding API के लिए इस्तेमाल और बिलिंग देखें.
नीतियां
आपकी जियोकोडिंग सेवा का इस्तेमाल जियोकोडिंग एपीआई की नीतियों के मुताबिक होना चाहिए.
जियोकोडिंग के अनुरोध
जियोकोडिंग सेवा को ऐसिंक्रोनस तरीके से ऐक्सेस किया जाता है, क्योंकि Google Maps API को किसी बाहरी सर्वर पर कॉल करना पड़ता है. इसलिए, अनुरोध पूरा होने पर उसे लागू करने के लिए, आपको कॉलबैक का तरीका पास करना होगा. यह कॉलबैक तरीका, नतीजे को प्रोसेस करता है. ध्यान दें कि जियोकोडर एक से ज़्यादा नतीजे दिखा सकता है.
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
पैरामीटर का असर, सिर्फ़ जगह की जानकारी देने वाले टूल के नतीजों पर पड़ेगा. हालांकि, इससे नतीजों पर पूरी तरह से पाबंदी नहीं लगेगी. क्षेत्र कोड के आधार पर बायस के बारे में ज़्यादा जानकारी यहां देखें.extraComputations
— इस पैरामीटर के लिए सिर्फ़ADDRESS_DESCRIPTORS
वैल्यू का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, पते के ब्यौरे देखें.fulfillOnZeroResults
— जवाब में ZERO_RESULT स्टेटस के लिए किए गए वादे को पूरा करें. ऐसा इसलिए किया जा सकता है, क्योंकि भौगोलिक कोड से जुड़े नतीजे न मिलने पर भी, रिस्पॉन्स लेवल के अन्य फ़ील्ड दिख सकते हैं. ज़्यादा जानकारी के लिए, कोई नतीजा न मिलने पर ऑर्डर पूरा करना देखें.
जियोकोडिंग के रिस्पॉन्स
जियोकोडिंग सेवा के लिए, कॉलबैक का तरीका ज़रूरी है, ताकि जियोकोडर के नतीजे मिलने पर उसे लागू किया जा सके. इस कॉलबैक को 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" (सड़क का नंबर), "8th Avenue" (रूट), "न्यूयॉर्क" (शहर) और "NY" (अमेरिका का राज्य).
फ़ॉर्मैट किए गए पते को प्रोग्राम के हिसाब से पार्स न करें. इसके बजाय, आपको पते के अलग-अलग कॉम्पोनेंट का इस्तेमाल करना चाहिए, जिसे फ़ॉर्मैट किए गए पते के फ़ील्ड के साथ-साथ, एपीआई के रिस्पॉन्स में शामिल किया जाता है.
address_components[]
एक कलेक्शन है, जिसमें इस पते पर लागू होने वाले अलग-अलग कॉम्पोनेंट शामिल होते हैं.पते के हर कॉम्पोनेंट में आम तौर पर ये फ़ील्ड शामिल होते हैं:
types[]
एक कलेक्शन है, जो पता कॉम्पोनेंट का टाइप बताता है. इस्तेमाल किए जा सकने वाले टाइप की सूची देखें.long_name
, पते के कॉम्पोनेंट का पूरा ब्यौरा या उसका नाम होता है, जो जियोकोडर दिखाता है.- अगर उपलब्ध हो, तो
short_name
, पता कॉम्पोनेंट का छोटा टेक्स्ट नाम होता है. उदाहरण के लिए, अलास्का राज्य के पते के एक कॉम्पोनेंट में "अलास्का" काlong_name
और दो अक्षर वाले डाक के संक्षिप्त नाम का इस्तेमाल करके "AK" काshort_name
लिखा हो सकता है.
address_components[]
कलेक्शन के बारे में इन बातों का ध्यान रखें:- पते के कॉम्पोनेंट के कलेक्शन में,
formatted_address
के मुकाबले ज़्यादा कॉम्पोनेंट हो सकते हैं. - यह ज़रूरी नहीं है कि कलेक्शन में
formatted_address
में शामिल पते वाली सभी राजनैतिक इकाइयां शामिल हों. किसी पते वाली सभी राजनैतिक इकाइयों को वापस लाने के लिए, आपको रिवर्स जियोकोडिंग का इस्तेमाल करना चाहिए. इसके लिए, अनुरोध के पैरामीटर के तौर पर पते के अक्षांश/देशांतर को पास किया जाना चाहिए. - इस बात की कोई गारंटी नहीं है कि अलग-अलग अनुरोधों के लिए, रिस्पॉन्स का फ़ॉर्मैट एक जैसा ही रहेगा. खास तौर पर,
address_components
की संख्या, अनुरोध किए गए पते के आधार पर अलग-अलग होती है. यह संख्या, उसी पते के लिए समय के साथ बदल सकती है. कोई कॉम्पोनेंट, अरे में जगह बदल सकता है. कॉम्पोनेंट का टाइप बदल सकता है. हो सकता है कि बाद में दिए जाने वाले जवाब में कोई खास कॉम्पोनेंट मौजूद न हो.
पते के टाइप और पते के कॉम्पोनेंट के टाइप के बारे में ज़्यादा जानकारी यहां देखें.
-
partial_match
से पता चलता है कि जियोकोडर ने मूल अनुरोध के लिए एग्ज़ैक्ट मैच नहीं दिया. हालांकि, वह अनुरोध किए गए पते के हिस्से से मैच कर सकता था. हो सकता है कि आप गलत स्पेलिंग और/या अधूरे पते के लिए मूल अनुरोध की जांच करना चाहें.आंशिक मिलान अक्सर उन सड़क के पतों के लिए होते हैं जो आपके अनुरोध में पास किए गए मोहल्ले के भीतर मौजूद नहीं होते हैं. जब कोई अनुरोध एक ही इलाके की दो या उससे ज़्यादा जगहों से मैच करता है, तब भी कुछ हिस्से मैच हो सकते हैं. उदाहरण के लिए, "Hillpar St, Bristol, UK" हेनरी स्ट्रीट और हेनरीएटा स्ट्रीट, दोनों के लिए आंशिक मैच नतीजे देगा. ध्यान दें कि अगर किसी अनुरोध में गलत स्पेलिंग वाले पते का कॉम्पोनेंट शामिल है, तो जियोकोडिंग सेवा किसी दूसरे पते का सुझाव दे सकती है. इस तरह ट्रिगर किए गए सुझावों को भी 'कुछ हद तक मिलते-जुलते' के तौर पर मार्क किया जाएगा.
place_id
किसी जगह का यूनीक आइडेंटिफ़ायर होता है. इसका इस्तेमाल, Google के अन्य एपीआई के साथ किया जा सकता है. उदाहरण के लिए, किसी स्थानीय कारोबार की जानकारी पाने के लिए,place_id
का इस्तेमाल Google Places API लाइब्रेरी के साथ किया जा सकता है. जैसे, फ़ोन नंबर, कारोबार के खुले होने का समय, उपयोगकर्ताओं की समीक्षाएं वगैरह. जगह की जानकारी देने वाले आईडी के बारे में खास जानकारी देखें.postcode_localities[]
एक कलेक्शन है, जिसमें पिन कोड में शामिल सभी जगहों की जानकारी होती है. यह सिर्फ़ तब दिखता है, जब नतीजा एक ऐसा पिन कोड हो जिसमें एक से ज़्यादा जगहें शामिल हों.geometry
में यह जानकारी शामिल होती है:location
में,भौगोलिक कोड वाली अक्षांश और देशांतर की वैल्यू शामिल होती है. ध्यान दें कि हम इस जगह की जानकारी कोLatLng
ऑब्जेक्ट के तौर पर दिखाते हैं, न कि फ़ॉर्मैट की गई स्ट्रिंग के तौर पर.location_type
, बताई गई जगह के बारे में अतिरिक्त डेटा सेव करता है. ये वैल्यू इस्तेमाल की जा सकती हैं:ROOFTOP
से पता चलता है कि रिटर्न किया गया नतीजा, सटीक जियोकोड दिखाता है.RANGE_INTERPOLATED
से पता चलता है कि मिला हुआ नतीजा, दो सटीक बिंदुओं (जैसे कि चौराहे) के बीच, आम तौर पर सड़क पर, अनुमानित दूरी दिखाता है. आम तौर पर, इंटरपोलेशन वाले नतीजे तब दिखाए जाते हैं, जब सड़क के पते के लिए, रूफ़टॉप जियोकोड उपलब्ध न हों.GEOMETRIC_CENTER
से पता चलता है कि दिखाया गया नतीजा, किसी नतीजे का ज्यामितीय केंद्र है. जैसे, कोई पॉलीलाइन (उदाहरण के लिए, कोई सड़क) या पॉलीगॉन (इलाका).APPROXIMATE
से पता चलता है कि मिला नतीजा अनुमानित है.
viewport
, दिखाए गए नतीजे के लिए सुझाया गया व्यूपोर्ट सेव करता है.bounds
(ज़रूरी नहीं कि यह नतीजा दिखाए) मेंLatLngBounds
सेव होता है. इसमें नतीजा पूरी तरह से शामिल हो सकता है. ध्यान दें कि हो सकता है कि ये सीमाएं, सुझाए गए व्यूपोर्ट से मेल न खाएं. (उदाहरण के लिए, सैन फ़्रांसिस्को में फ़ैरालॉन द्वीप समूह शामिल हैं, जो तकनीकी रूप से शहर का हिस्सा हैं. हालांकि, इन्हें व्यूपोर्ट में नहीं दिखाया जाना चाहिए.)
जियोकोडर, ब्राउज़र की पसंदीदा भाषा सेटिंग या language
पैरामीटर का इस्तेमाल करके एपीआई JavaScript लोड करते समय बताई गई भाषा का इस्तेमाल करके, पते दिखाता है. (ज़्यादा जानकारी के लिए,
लोकलाइज़ेशन देखें.)
पते के टाइप और पते के कॉम्पोनेंट के टाइप
GeocoderResult में मौजूद types[]
कलेक्शन से, पते का टाइप पता चलता है. किसी खास पते के कॉम्पोनेंट के टाइप को दिखाने के लिए, types[]
कलेक्शन को GeocoderAddressComponent में भी दिखाया जा सकता है. जियोकोडर से मिले पतों के कई टाइप हो सकते हैं. इन टाइप को टैग माना जा सकता है.
उदाहरण के लिए, कई शहरों को 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
, कोड में बदली गई जगह का रेफ़रंस दिखाता है, जो अक्षांश और देशांतर से मिलता है. प्लस कोड का इस्तेमाल, उन जगहों पर मोहल्ले के पतों की जगह पर किया जा सकता है जहां कोई मौजूद नहीं है (जहां इमारतों को नंबर नहीं दिया गया है या सड़कों के नाम नहीं दिए गए हैं). ज़्यादा जानकारी के लिए 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"
बताता है कि जियोकोड सफल रहा, लेकिन कोई नतीजा नहीं मिला. ऐसा तब हो सकता है, जब जियोकोडर को ऐसे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
पैरामीटर की जानकारी देने पर, इस जियोकोड से उस जगह के "विनेटका" नाम के इलाके की जानकारी मिलती है:
{ "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 ऐप्लिकेशन, जियोकोडिंग की सुविधा देता है. ध्यान दें कि किसी खास डोमेन के नतीजों को प्राथमिकता देने का मतलब है कि उन्हें ज़्यादा प्राथमिकता दी जाती है. हालांकि, अगर इस डोमेन से बाहर के नतीजे ज़्यादा काम के हैं, तो उन्हें भी शामिल किया जा सकता है.
उदाहरण के लिए, "टोलेडो" के लिए जियोकोड यह नतीजा दिखाता है, क्योंकि जियोकोडिंग सेवा के लिए डिफ़ॉल्ट डोमेन, अमेरिका पर सेट है:
{ "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" }
region
फ़ील्ड को 'es'
(स्पेन) पर सेट करके, "टोलेडो" का जियोकोड डालने पर, स्पेन का यह शहर दिखेगा:
{ "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
पैरामीटर में फ़िल्टर की जानकारी दें. फ़िल्टर की वैल्यू में, स्पेलिंग ठीक करने और कुछ हद तक मैच करने के लिए, वही तरीके इस्तेमाल किए जाते हैं जो अन्य जियोकोडिंग अनुरोधों में इस्तेमाल किए जाते हैं.
जियोकोडर सिर्फ़ ऐसे नतीजे दिखाता है जो कॉम्पोनेंट के सभी फ़िल्टर से मैच करते हैं. इसका मतलब है कि यह फ़िल्टर की शर्तों का आकलन, AND के तौर पर करता है, न कि OR के तौर पर.
कॉम्पोनेंट फ़िल्टर में, इनमें से एक या उससे ज़्यादा आइटम होते हैं:
route
, किसी रास्ते के लंबे या छोटे नाम से मेल खाता है.locality
, इलाके और उप-इलाके के टाइप से मैच करता है.administrativeArea
, एडमिनिस्ट्रेटिव एरिया के सभी लेवल से मैच करता है.postalCode
, पिन कोड और पिन कोड के प्रीफ़िक्स से मैच करता है.country
, देश के नाम या दो अक्षरों वाले ISO 3166-1 देश के कोड से मेल खाता है. ध्यान दें: देशों की जानकारी देने के लिए, एपीआई आईएसओ स्टैंडर्ड का पालन करता है. साथ ही, देश के आईएसओ कोड का इस्तेमाल करने पर, फ़िल्टर करने की सुविधा सबसे अच्छी तरह से काम करती है.
नीचे दिए गए उदाहरण में, 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); } }); }
कोई नतीजा न मिलने पर ऑर्डर पूरा करना
रिवर्स जियोकोडिंग के लिए, डिफ़ॉल्ट रूप से status=ZERO_RESULTS
पर वादा पूरा नहीं होता. हालांकि, इस मामले में plus_code
और address_descriptor
के जवाब के लेवल के अन्य फ़ील्ड अब भी भरे जा सकते हैं. अगर fulfillOnZeroResults
पैरामीटर के लिए सही दिया जाता है,
तो इस मामले में जानकारी अपने-आप भर जाती है. अगर fulfillOnZeroResults
पैरामीटर के लिए 'सही है' दिया गया है, तो इसका मतलब है कि वादा पूरा किया गया है. साथ ही, अगर ये अतिरिक्त फ़ील्ड मौजूद हैं, तो इन्हें वादे से ऐक्सेस किया जा सकता है.
अंटार्कटिका में अक्षांश/देशांतर के लिए, इस तरह के व्यवहार का उदाहरण यहां दिया गया है.
भले ही, रिवर्स जियोकोडिंग के नतीजे न मिले हों, फिर भी fulfillOnZeroResults=true
सेट करने पर, हम प्रॉमिस में प्लस कोड को प्रिंट कर सकते हैं.
function addressDescriptorReverseGeocoding() { var latlng = new google.maps.LatLng(-75.290330, 38.653861); geocoder .geocode({ 'location': latlng, 'fulfillOnZeroResults': true, }) .then((response) => { console.log(response.plus_code); }) .catch((error) => { window.alert(`Error`); }); }
पते के डिस्क्रिप्टर
पते के ब्यौरे में अतिरिक्त जानकारी शामिल होती है. इससे लैंडमार्क और इलाकों का इस्तेमाल करके, किसी जगह के बारे में जानकारी देने में मदद मिलती है. इस सुविधा के बारे में जानने के लिए, पते के ब्यौरे का डेमो देखें.
extraComputations
पैरामीटर का इस्तेमाल करके, पते के ब्यौरे की सुविधा चालू की जा सकती है. अपने जवाब में पते के ब्यौरे पाने के लिए, जियोकोडिंग के अनुरोध
, रिवर्स जियोकोडिंग के अनुरोध
या जगहों की जियोकोडिंग के अनुरोध में extra_computations=ADDRESS_DESCRIPTORS
शामिल करें.
जगहों की जियोकोडिंग का उदाहरण
इस क्वेरी में दिल्ली की किसी जगह का पता शामिल है.
function addressDescriptorPlaceIdLookup() { geocoder.geocode({ geocoder.geocode({ 'placeId': 'ChIJyxAX8Bj9DDkRgBfAnBYa66Q', 'extraComputations': ['ADDRESS_DESCRIPTORS'] }, function(results, status) { if (status == 'OK') { console.log(results[0].address_descriptor); } else { window.alert('Geocode was not successful for the following reason: ' + status); } }); }
रिवर्स जियोकोडिंग का उदाहरण
नीचे दी गई क्वेरी में, दिल्ली में मौजूद किसी जगह के अक्षांश/देशांतर की वैल्यू शामिल है.
function addressDescriptorReverseGeocoding() { var latlng = new google.maps.LatLng(28.640964,77.235875); geocoder .geocode({ 'location': latlng, 'extraComputations': ["ADDRESS_DESCRIPTORS"], }) .then((response) => { console.log(response.address_descriptor); }) .catch((error) => { window.alert(`Error`); }); }
पते के ब्यौरे का उदाहरण
address_descriptor
का उदाहरण यहां दिया गया है.
{ "address_descriptor" : { "areas" : [ { "containment" : "OUTSKIRTS", "display_name" : { "language_code" : "en", "text" : "Turkman Gate" }, "place_id" : "ChIJ_7LLvyb9DDkRMKKxP9YyXgs" }, { "containment" : "OUTSKIRTS", "display_name" : { "language_code" : "en", "text" : "Chandni Chowk" }, "place_id" : "ChIJWcXciBr9DDkRUb4dCDykTwI" }, { "containment" : "NEAR", "display_name" : { "language_code" : "en", "text" : "Katar Ganj" }, "place_id" : "ChIJH3cWUyH9DDkRaw-9CjvcRvY" } ], "landmarks" : [ { "display_name" : { "language_code" : "en", "text" : "Delite Cinema" }, "straight_line_distance_meters" : 29.9306755065918, "place_id" : "ChIJLfiYDCT9DDkROoEa7NdupUM", "travel_distance_meters" : 418.7794799804688, "spatial_relationship" : "ACROSS_THE_ROAD", "types" : [ "establishment", "movie_theater", "point_of_interest" ] }, { "display_name" : { "language_code" : "en", "text" : "YES Bank" }, "straight_line_distance_meters" : 66.83731079101562, "place_id" : "ChIJFYHM3yb9DDkRRKGkZl2mpSQ", "travel_distance_meters" : 489.0340270996094, "spatial_relationship" : "DOWN_THE_ROAD", "types" : [ "bank", "establishment", "finance", "point_of_interest" ] }, { "display_name" : { "language_code" : "en", "text" : "UCO Bank" }, "straight_line_distance_meters" : 25.38849639892578, "place_id" : "ChIJ-c6_wCb9DDkRjIk1LeqRtGM", "travel_distance_meters" : 403.2246398925781, "spatial_relationship" : "ACROSS_THE_ROAD", "types" : [ "atm", "bank", "establishment", "finance", "point_of_interest" ] }, { "display_name" : { "language_code" : "en", "text" : "Delhi By Cycle Meeting Point" }, "straight_line_distance_meters" : 44.02867126464844, "place_id" : "ChIJNxVfkSb9DDkRJD22l-eGFdM", "travel_distance_meters" : 97.41281890869141, "spatial_relationship" : "AROUND_THE_CORNER", "types" : [ "establishment", "point_of_interest", "tourist_attraction", "travel_agency" ] }, { "display_name" : { "language_code" : "en", "text" : "Axis Bank Branch" }, "straight_line_distance_meters" : 102.3495178222656, "place_id" : "ChIJr3uaDCT9DDkR8roHTVSn1x4", "travel_distance_meters" : 330.8566284179688, "spatial_relationship" : "DOWN_THE_ROAD", "types" : [ "bank", "establishment", "finance", "point_of_interest" ] } ] } }
हर address_descriptor
ऑब्जेक्ट में दो कलेक्शन होते हैं: landmarks
और
areas
. landmarks
कलेक्शन में, मांगे गए निर्देशांक के आस-पास मौजूद जगहों के ज़्यादा से ज़्यादा पांच नतीजे होते हैं. इन नतीजों को काम के होने के हिसाब से रैंक किया जाता है. रैंकिंग तय करने के लिए, लैंडमार्क की लोकप्रियता, उसकी पहुंच, और मांगे गए निर्देशांक से उसकी दूरी को ध्यान में रखा जाता है. हर लैंडमार्क के नतीजे में ये वैल्यू होती हैं:
place_id
, लैंडमार्क के नतीजे का प्लेस आईडी है. जगह के आईडी के बारे में खास जानकारी देखें.display_name
, लैंडमार्क का डिसप्ले नेम है. इसमेंlanguage_code
औरtext
शामिल हैं.straight_line_distance_meters
, इनपुट कोऑर्डिनेट और लैंडमार्क के नतीजे के बीच की दूरी है. यह दूरी मीटर में होती है.- इनपुट निर्देशांक और लैंडमार्क के नतीजे के बीच, सड़क के नेटवर्क (सड़क की पाबंदियों को अनदेखा करते हुए) का इस्तेमाल करके,
travel_distance_meters
मीटर में तय की गई दूरी है. spatial_relationship
, इनपुट कोऑर्डिनेट और लैंडमार्क के नतीजे के बीच का अनुमानित संबंध है:- अगर इनमें से कोई भी शर्त लागू नहीं होती है, तो
"NEAR"
डिफ़ॉल्ट रिलेशनशिप है. "WITHIN"
जब इनपुट कोऑर्डिनेट, लैंडमार्क से जुड़े स्ट्रक्चर की सीमाओं में हो."BESIDE"
जब इनपुट कोऑर्डिनेट, लैंडमार्क या लैंडमार्क के ऐक्सेस पॉइंट के बिलकुल बगल में हो."ACROSS_THE_ROAD"
जब इनपुट कोऑर्डिनेट, रास्ते के दूसरी ओर मौजूद लैंडमार्क के ठीक सामने हो."DOWN_THE_ROAD"
जब इनपुट कोऑर्डिनेट, लैंडमार्क के रास्ते पर हो, लेकिन"BESIDES"
या"ACROSS_THE_ROAD"
पर न हो."AROUND_THE_CORNER"
जब इनपुट कोऑर्डिनेट, लैंडमार्क के तौर पर सीधे रास्ते पर हो (सिर्फ़ एक मोड़ पर लागू)."BEHIND"
जब इनपुट कोऑर्डिनेट, जगह के हिसाब से लैंडमार्क के करीब है, लेकिन उसके ऐक्सेस पॉइंट से दूर है.types
, लैंडमार्क के जगह के टाइप हैं.
areas
ऑब्जेक्ट में ज़्यादा से ज़्यादा तीन रिस्पॉन्स होते हैं. यह ऑब्जेक्ट, छोटे इलाकों के बारे में जानकारी देता है. जैसे, आस-पास के इलाके, उप-इलाके, और बड़े कॉम्प्लेक्स. जिन इलाकों में अनुरोध किया गया निर्देशांक है वे सबसे पहले सूची में दिखते हैं. साथ ही, इन्हें सबसे छोटे से लेकर सबसे बड़े तक के क्रम में लगाया जाता है. हर areas
नतीजे में ये वैल्यू होती हैं:
place_id
, इलाकों के नतीजे का प्लेस आईडी है. जगह के आईडी के बारे में खास जानकारी देखें.display_name
, इलाके का डिसप्ले नेम है. इसमेंlanguage_code
औरtext
शामिल हैं.containment
, इनपुट कोऑर्डिनेट और इलाकों के नतीजे के बीच, अनुमानित कंटेनमेंट रिलेशनशिप है:- अगर इनमें से कोई भी शर्त लागू नहीं होती है, तो
"NEAR"
डिफ़ॉल्ट रिलेशनशिप है. "WITHIN"
जब इनपुट कोऑर्डिनेट, इलाके के बीच में हो."OUTSKIRTS"
जब इनपुट कोऑर्डिनेट, एरिया के किनारे के करीब हो.
पते के ब्यौरे की कवरेज
भारत में पते के डिस्क्रिप्टर GA में मौजूद हैं. भारत में पते के ब्यौरे का इस्तेमाल करने के लिए, कोई अतिरिक्त शुल्क नहीं लिया जाता. साथ ही, इसका इस्तेमाल करने पर, मौजूदा जियोकोडिंग (भारत) के लिए ज़रूरी SKU का शुल्क लिया जाता है.
सुझाव/राय दें या शिकायत करें
यह सुविधा सभी देशों/इलाकों में उपलब्ध है. यह भारत के लिए जीए में है और अन्य सभी इलाकों के लिए, जीए से पहले के एक्सपेरिमेंटल लॉन्च चरण में है. हमें आपके सुझाव, शिकायत या राय मिलना पसंद है:
- सिर्फ़ भारत से जुड़ी समस्याओं के लिए, सहायता टीम से संपर्क करें.
- एक्सपेरिमेंट के तौर पर रिलीज़ किए गए वर्शन के बारे में सुझाव/राय देने या शिकायत करने के लिए, हमें [email protected] पर ईमेल करें.
- ज़्यादा जानकारी के लिए, पते के ब्यौरे की कवरेज की जानकारी देखें.
रिवर्स जियोकोडिंग (पता लुकअप)
आम तौर पर, जियोकोडिंग का मतलब, मैप पर किसी ऐसी जगह की जानकारी को बदलना है जिसे कोई भी व्यक्ति पढ़ सकता है. इसके उलट, मैप पर मौजूद किसी जगह की जानकारी को ऐसे पते में बदलने की प्रोसेस को रिवर्स जियोकोडिंग कहा जाता है जिसे कोई भी व्यक्ति पढ़ सके.
टेक्स्ट वाले 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 के अन्य एपीआई के साथ किया जा सकता है. उदाहरण के लिए, स्नैप किए गए पॉइंट का पता पाने के लिए, सड़कों के एपीआई से मिले 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;