जियोकोडिंग सेवा

ध्यान दें: सर्वर-साइड लाइब्रेरी
यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

खास जानकारी

जियोकोडिंग, पतों (जैसे, "1600 Amphitheatre Parkway, Mountain View, CA") को भौगोलिक निर्देशांकों (जैसे, अक्षांश 37.423021 और देशांतर -122.083739) में बदलने की प्रोसेस है. इनका इस्तेमाल, मार्कर लगाने या मैप की पोज़िशन तय करने के लिए किया जा सकता है.

रिवर्स जियोकोडिंग, भौगोलिक निर्देशांकों को किसी व्यक्ति के लिए आसानी से पढ़े जा सकने वाले पते में बदलने की प्रोसेस है. इसके बारे में ज़्यादा जानने के लिए, रिवर्स जियोकोडिंग (पता खोजना) देखें.

किसी जगह के आईडी का पता ढूंढने के लिए, जियोकोडर का भी इस्तेमाल किया जा सकता है.

Maps JavaScript API, उपयोगकर्ता के इनपुट से डाइनैमिक तौर पर जियोकोडिंग और रिवर्स जियोकोडिंग करने के लिए, Geocoder क्लास उपलब्ध कराता है. अगर आपको स्टैटिक और जाने-माने पतों को जियोकोड करना है, तो जियोकोडिंग वेब सेवा देखें. टाइपअहेड सर्च, डाक पते की पुष्टि करने या टाइम ज़ोन लुकअप के लिए, Geocoder की तुलना Google Maps Platform के अन्य एपीआई से करने के लिए, सही पता या निर्देशांक एपीआई चुनें लेख पढ़ें.

अपनी प्रोफ़ाइल बनाना शुरू करें

Maps JavaScript API में जियोकोडिंग सेवा का इस्तेमाल करने से पहले, पक्का करें कि Google Cloud Console में Geocoding API चालू हो. यह उसी प्रोजेक्ट में होना चाहिए जिसे आपने Maps JavaScript API के लिए सेट अप किया है.

चालू किए गए एपीआई की सूची देखने के लिए:

  1. Google Cloud Console पर जाएं.
  2. कोई प्रोजेक्ट चुनें बटन पर क्लिक करें. इसके बाद, वही प्रोजेक्ट चुनें जिसे आपने Maps JavaScript API के लिए सेट अप किया है. इसके बाद, खोलें पर क्लिक करें.
  3. डैशबोर्ड पर मौजूद एपीआई की सूची में, Geocoding API ढूंढें.
  4. अगर आपको सूची में एपीआई दिखता है, तो आपको कोई कार्रवाई करने की ज़रूरत नहीं है. अगर एपीआई सूची में नहीं है, तो उसे चालू करें:
    1. लाइब्रेरी टैब दिखाने के लिए, पेज पर सबसे ऊपर मौजूद एपीआई चालू करें को चुनें. इसके अलावा, बाईं ओर मौजूद मेन्यू में जाकर, लाइब्रेरी को चुनें.
    2. Geocoding API खोजें. इसके बाद, नतीजों की सूची से इसे चुनें.
    3. चालू करें को चुनें. प्रोसेस पूरी होने के बाद, डैशबोर्ड पर एपीआई की सूची में Geocoding API दिखता है.

अगर आपका मैप नहीं दिखता है या ब्राउज़र कंसोल में एपीआई पासकोड या उसे चालू करने से जुड़ी गड़बड़ी लॉग होती है, तो समस्या हल करना और गड़बड़ी के मैसेज देखें.

कीमत और नीतियां

कीमत

JavaScript Geocoding सेवा की कीमत और इस्तेमाल से जुड़ी नीतियों के बारे में जानने के लिए, Geocoding API के लिए इस्तेमाल और बिलिंग देखें.

नीतियां

Geocoding सेवा का इस्तेमाल, Geocoding API की नीतियों के मुताबिक होना चाहिए.

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

जियोकोडिंग सेवा को ऐक्सेस करना एसिंक्रोनस है. इसके लिए, बाहरी सर्वर को कॉल करना ज़रूरी है. इस वजह से, geocode तरीका एक प्रॉमिस दिखाता है, जो अनुरोध पूरा होने पर रिज़ॉल्व हो जाता है. समस्या हल होने के बाद, जवाब को मैनेज करने के लिए .then() या await का इस्तेमाल किया जा सकता है.

re

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[] एक कलेक्शन है, जो दिखाए गए नतीजे के पते का टाइप बताता है. इस कलेक्शन में शून्य या उससे ज़्यादा टैग का सेट होता है. इससे नतीजे में दिखाए गए फ़ीचर के टाइप की पहचान की जाती है. उदाहरण के लिए, "शिकागो" का जियोकोड "locality" दिखाता है. इससे पता चलता है कि "शिकागो" एक शहर है. साथ ही, यह "political" दिखाता है. इससे पता चलता है कि यह एक राजनैतिक इकाई है. पते के टाइप और पते के कॉम्पोनेंट के टाइप के बारे में ज़्यादा जानकारी यहां देखें.
  • formatted_address एक स्ट्रिंग है, जिसमें इस जगह का किसी व्यक्ति के लिए आसानी से पढ़ा जा सकने वाला डेटा पता होता है.

    अक्सर यह पता, डाक पते के बराबर होता है. ध्यान दें कि लाइसेंस से जुड़ी पाबंदियों की वजह से, यूनाइटेड किंगडम जैसे कुछ देशों में सही डाक पते शेयर करने की अनुमति नहीं है.

    फ़ॉर्मैट किया गया पता, लॉजिकल तौर पर एक या उससे ज़्यादा पते के कॉम्पोनेंट से बना होता है. उदाहरण के लिए, पते "111 8th Avenue, New York, NY" में ये कॉम्पोनेंट शामिल हैं: "111" (सड़क का नंबर), "8th Avenue" (रास्ता), "New York" (शहर), और "NY" (अमेरिका का राज्य).

    फ़ॉर्मैट किए गए पते को प्रोग्राम के हिसाब से पार्स न करें. इसके बजाय, आपको पते के अलग-अलग कॉम्पोनेंट का इस्तेमाल करना चाहिए. एपीआई से मिली जानकारी में, फ़ॉर्मैट किए गए पते के फ़ील्ड के साथ-साथ ये कॉम्पोनेंट भी शामिल होते हैं.

  • address_components[] एक कलेक्शन है, जिसमें इस पते पर लागू होने वाले अलग-अलग कॉम्पोनेंट शामिल हैं.

    पते के हर कॉम्पोनेंट में आम तौर पर ये फ़ील्ड होते हैं:

    • types[] एक ऐरे है, जो पते के कॉम्पोनेंट का टाइप दिखाता है. अगर पते के कॉम्पोनेंट के लिए कोई टाइप मौजूद नहीं है, तो हो सकता है कि पते के कॉम्पोनेंट में टाइप का कलेक्शन खाली हो. एपीआई, ज़रूरत के हिसाब से नई टाइप वैल्यू जोड़ सकता है. ज़्यादा जानकारी के लिए, पते के टाइप और पते के कॉम्पोनेंट के टाइप देखें.
    • long_name, पते के कॉम्पोनेंट का पूरा टेक्स्ट ब्यौरा या नाम है, जैसा कि Geocoder ने दिखाया है.
    • short_name, पते के कॉम्पोनेंट का छोटा नाम है. यह नाम, कॉम्पोनेंट उपलब्ध होने पर ही दिखता है. उदाहरण के लिए, अलास्का राज्य के पते के कॉम्पोनेंट में, long_name "अलास्का" और short_name "AK" हो सकता है. इसमें दो अक्षरों वाले डाक पते के संक्षिप्त नाम का इस्तेमाल किया जाता है.

    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 को सेव करता है, जिसमें नतीजे को पूरी तरह से शामिल किया जा सकता है. ध्यान दें कि हो सकता है कि ये सीमाएं, सुझाए गए व्यूपोर्ट से मैच न करें. (उदाहरण के लिए, सैन फ़्रांसिस्को में फ़ैरालोन द्वीप शामिल है, जो तकनीकी तौर पर शहर का हिस्सा है, लेकिन इसे व्यूपोर्ट में नहीं दिखाया जाना चाहिए.)

Geocoder, ब्राउज़र की पसंदीदा भाषा की सेटिंग या language पैरामीटर का इस्तेमाल करके, एपीआई JavaScript को लोड करते समय तय की गई भाषा का इस्तेमाल करके पते दिखाता है. (ज़्यादा जानकारी के लिए, स्थानीय भाषा में उपलब्ध कराना देखें.)

पते के टाइप और पते के कॉम्पोनेंट के टाइप

जवाब में GeocoderResult में मौजूद types[] कलेक्शन, पते के टाइप के बारे में बताता है. पते के टाइप के उदाहरणों में, मोहल्ले का पता, देश या राजनैतिक इकाई शामिल है. GeocoderAddressComponent में मौजूद 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 अक्षांश और देशांतर से मिली जगह की जानकारी का एन्कोड किया गया रेफ़रंस. Plus Codes का इस्तेमाल, उन जगहों पर मोहल्ले के पते के तौर पर किया जा सकता है जहां मोहल्ले के पते मौजूद नहीं हैं. जैसे, जहां इमारतों को नंबर नहीं दिए गए हैं या सड़कों के नाम नहीं हैं. ज़्यादा जानकारी के लिए, 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 के सर्वर से संपर्क करने में कोई समस्या हुई है. फिर से कोशिश करने पर, अनुरोध पूरा हो सकता है.

जियोकोडिंग का उदाहरण

यहां दिए गए उदाहरण में, किसी पते को जियोकोड करने और दिखाए गए अक्षांश और देशांतर की वैल्यू पर मार्कर लगाने का तरीका बताया गया है. जियोकोडिंग के नतीजे को प्रॉमिस का इस्तेमाल करके मैनेज किया जाता है. मैप पर कहीं भी क्लिक करके, उस जगह के पते को जियोकोड करें.

TypeScript

async function geocode(request: google.maps.GeocoderRequest) {
    clear();
    const { LatLng } = await google.maps.importLibrary('core');

    try {
        const response = await geocoder.geocode(request);
        const { results } = response;

        innerMap.setCenter(results[0].geometry.location);
        marker.position = new LatLng(results[0].geometry.location);
        mapElement.append(marker);
        responseDiv.style.display = 'block';
        responsePre.innerText = JSON.stringify(response, null, 2);
        return results;
    } catch (e) {
        alert(
            'Geocode was not successful for the following reason: ' + String(e)
        );
    }
}

JavaScript

async function geocode(request) {
    clear();
    const { LatLng } = await google.maps.importLibrary('core');

    try {
        const response = await geocoder.geocode(request);
        const { results } = response;

        innerMap.setCenter(results[0].geometry.location);
        marker.position = new LatLng(results[0].geometry.location);
        mapElement.append(marker);
        responseDiv.style.display = 'block';
        responsePre.innerText = JSON.stringify(response, null, 2);
        return results;
    } catch (e) {
        alert(
            'Geocode was not successful for the following reason: ' + String(e)
        );
    }
}

पूरा उदाहरण देखें.

व्यूपोर्ट बायसिंग

जियोकोडिंग सेवा को निर्देश दिया जा सकता है कि वह किसी दिए गए व्यूपोर्ट (बाउंडिंग बॉक्स के तौर पर दिखाया गया) के अंदर के नतीजों को प्राथमिकता दे. इसके लिए, 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 पैरामीटर का इस्तेमाल करते समय:

  • सिर्फ़ एक देश या इलाके की जानकारी दें. एक से ज़्यादा वैल्यू को अनदेखा कर दिया जाता है. इससे अनुरोध पूरा नहीं हो पाता.
  • सिर्फ़ दो वर्णों वाले क्षेत्र के सबटैग (यूनिकोड सीएलडीआर फ़ॉर्मैट) का इस्तेमाल करें. अन्य सभी इनपुट की वजह से गड़बड़ियां होंगी.
  • यह सुविधा सिर्फ़ उन देशों और इलाकों में उपलब्ध है जो 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"
}

"Toledo" के लिए जियोकोड, जिसमें 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 पैरामीटर का इस्तेमाल दिखाया गया है:

async function codeAddress(request: google.maps.GeocoderRequest) {
    clear();
    geocoder.geocode({
        componentRestrictions: {
            country: 'AU',
            postalCode: '2000'
        }
    })
    .then((result) => {
        const { results } = result;
        innerMap.setCenter(results[0].geometry.location);
        let marker = new google.maps.marker.AdvancedMarkerElement({
            map: innerMap,
            position: results[0].geometry.location
        });
    })
    .catch((e) => {
        alert('Geocode was not successful for the following reason: ' + e);
    });
};

कोई नतीजा न मिलने पर पूरा करें

रिवर्स जियोकोडिंग के लिए, डिफ़ॉल्ट रूप से प्रॉमिस status=ZERO_RESULTS पर टूट जाता है. हालांकि, इस मामले में plus_code और address_descriptor के अतिरिक्त रिस्पॉन्स लेवल फ़ील्ड अब भी भरे जा सकते हैं. अगर fulfillOnZeroResults पैरामीटर के लिए true दिया गया है, तो इस मामले में जानकारी अपने-आप भर जाती है. अगर fulfillOnZeroResults पैरामीटर के लिए true वैल्यू दी जाती है, तो प्रॉमिस नहीं टूटता. साथ ही, अगर ये अतिरिक्त फ़ील्ड मौजूद हैं, तो इन्हें प्रॉमिस से ऐक्सेस किया जा सकता है.

अंटार्कटिका के अक्षांश/देशांतर के लिए, इस व्यवहार का एक उदाहरण यहां दिया गया है. रिवर्स जियोकोडिंग के नतीजे न होने पर भी, 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: ${error}`);
    });
}

Address Descriptors

पते की जानकारी देने वाले लैंडमार्क में, किसी जगह के बारे में ज़्यादा जानकारी शामिल होती है. इससे लैंडमार्क और इलाकों का इस्तेमाल करके, किसी जगह के बारे में जानकारी देने में मदद मिलती है. इस सुविधा के बारे में जानने के लिए, पते के बारे में खास जानकारी देने वाली सुविधा का डेमो देखें.

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" जब इनपुट कोऑर्डिनेट, इलाके के किनारे के करीब हो.

Address Descriptor कवरेज

भारत में पते के बारे में खास जानकारी बताने की सुविधा, अब सामान्य रूप से उपलब्ध है. भारत में इस सुविधा के लिए कोई अतिरिक्त शुल्क नहीं लिया जाता. साथ ही, इसका इस्तेमाल मौजूदा Geocoding (India) Essentials SKU प्लान के तहत किया जाता है.

सुझाव/राय दें या शिकायत करें

यह सुविधा सभी देशों/इलाकों में उपलब्ध है. यह भारत के लिए सामान्य रूप से उपलब्ध है. साथ ही, अन्य सभी देशों/इलाकों के लिए यह एक्सपेरिमेंट के तौर पर उपलब्ध है. हमें आपके सुझाव/राय/शिकायत का इंतज़ार रहेगा:

रिवर्स जियोकोडिंग (पता खोजना)

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

टेक्स्ट वाले address के बजाय, location पैरामीटर में कॉमा लगाकर अलग किए गए अक्षांश/देशांतर की वैल्यू दें.

यहां दिए गए उदाहरण में, अक्षांश/देशांतर की वैल्यू को जियोकोड किया गया है और मैप को उस जगह पर फ़ोकस किया गया है. इससे, फ़ॉर्मैट किए गए पते के साथ जानकारी विंडो खुलती है. जगह को जियोकोड करने के लिए, मैप पर कहीं भी क्लिक करें या अपने निर्देशांक डालें.

TypeScript

let marker: google.maps.marker.AdvancedMarkerElement;

async function init() {
    //  Request the needed libraries.
    const [{ InfoWindow }, { Geocoder }, { AdvancedMarkerElement }] =
        await Promise.all([
            google.maps.importLibrary('maps'),
            google.maps.importLibrary('geocoding'),
            google.maps.importLibrary('marker'),
        ]);

    // Get the gmp-map element.
    const mapElement = document.querySelector('gmp-map')!;

    // Get the inner map.
    const innerMap = mapElement.innerMap;

    // Get the latlng input box.
    const latLngQuery = document.getElementById('latlng') as HTMLInputElement;

    // Get the submit button.
    const submitButton = document.getElementById('submit')!;

    // Set the cursor to crosshair.
    innerMap.setOptions({
        draggableCursor: 'crosshair',
        zoom: 13,
        mapTypeControl: false,
    });

    // Create a marker for re-use.
    marker = new AdvancedMarkerElement({
        map: innerMap,
    });

    marker.anchorTop = '40px';

    const geocoder = new Geocoder();
    const infoWindow = new InfoWindow();

    // Add a click event listener to the submit button.
    submitButton.addEventListener('click', () => {
        void geocodeLatLng(geocoder, innerMap, infoWindow);
    });

    // Add a click event listener to the map.
    innerMap.addListener('click', (event: google.maps.MapMouseEvent) => {
        if (event.latLng) {
            latLngQuery.value = `${event.latLng.lat()}, ${event.latLng.lng()}`;
            void geocodeLatLng(geocoder, innerMap, infoWindow);
        }
    });

    // Make an initial request upon loading.
    void geocodeLatLng(geocoder, innerMap, infoWindow);
}

async 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]),
    };

    try {
        const { results } = await geocoder.geocode({ location: latlng });

        if (results[0]) {
            marker.position = latlng;
            map.setCenter(latlng);
            infoWindow.setContent(results[0].formatted_address);
            infoWindow.open(map, marker);
        } else {
            window.alert('No results found');
        }
    } catch (e) {
        window.alert('Geocoder failed due to: ' + String(e));
    }
}

void init();

JavaScript

let marker;

async function init() {
    //  Request the needed libraries.
    const [{ InfoWindow }, { Geocoder }, { AdvancedMarkerElement }] =
        await Promise.all([
            google.maps.importLibrary('maps'),
            google.maps.importLibrary('geocoding'),
            google.maps.importLibrary('marker'),
        ]);

    // Get the gmp-map element.
    const mapElement = document.querySelector('gmp-map');

    // Get the inner map.
    const innerMap = mapElement.innerMap;

    // Get the latlng input box.
    const latLngQuery = document.getElementById('latlng');

    // Get the submit button.
    const submitButton = document.getElementById('submit');

    // Set the cursor to crosshair.
    innerMap.setOptions({
        draggableCursor: 'crosshair',
        zoom: 13,
        mapTypeControl: false,
    });

    // Create a marker for re-use.
    marker = new AdvancedMarkerElement({
        map: innerMap,
    });

    marker.anchorTop = '40px';

    const geocoder = new Geocoder();
    const infoWindow = new InfoWindow();

    // Add a click event listener to the submit button.
    submitButton.addEventListener('click', () => {
        void geocodeLatLng(geocoder, innerMap, infoWindow);
    });

    // Add a click event listener to the map.
    innerMap.addListener('click', (event) => {
        if (event.latLng) {
            latLngQuery.value = `${event.latLng.lat()}, ${event.latLng.lng()}`;
            void geocodeLatLng(geocoder, innerMap, infoWindow);
        }
    });

    // Make an initial request upon loading.
    void geocodeLatLng(geocoder, innerMap, infoWindow);
}

async 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]),
    };

    try {
        const { results } = await geocoder.geocode({ location: latlng });

        if (results[0]) {
            marker.position = latlng;
            map.setCenter(latlng);
            infoWindow.setContent(results[0].formatted_address);
            infoWindow.open(map, marker);
        } else {
            window.alert('No results found');
        }
    } catch (e) {
        window.alert('Geocoder failed due to: ' + String(e));
    }
}

void init();

सीएसएस

/*
* Always set the map height explicitly to define the size of the div element
* that contains the map.
*/
gmp-map {
    height: 100%;
}

/*
* Optional: Makes the sample page fill the window.
*/
html,
body {
    height: 100%;
    margin: 0;
    padding: 0;
    font-family: Roboto, sans-serif;
}

#floating-panel {
    background-color: #fff;
    border-radius: 5px;
    box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
    margin: 10px;
    padding: 10px;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
}

#latlng {
    width: 100%;
    font-family: Roboto, sans-serif;
    font-size: 1rem;
    margin-bottom: 4px;
}

#submit {
    font-size: 1rem;
}

एचटीएमएल

<html>
    <head>
        <title>Reverse Geocoding</title>

        <link rel="stylesheet" type="text/css" href="./style.css" />
        <script type="module" src="./index.js"></script>
        <script>
            // prettier-ignore
            (g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))})({
                key: "GOOGLE_MAPS_API_KEY"
            });
        </script>
    </head>
    <body>
        <gmp-map center="0.714224, -73.961452" zoom="8" map-id="DEMO_MAP_ID">
            <div id="floating-panel" slot="control-block-start-inline-start">
                <p>
                    Click the map to reverse geocode, or add your own
                    coordinates.
                </p>
                <input
                    id="latlng"
                    type="text"
                    value="40.714224, -73.961452" /><br />
                <input id="submit" type="button" value="Reverse Geocode" />
            </div>
        </gmp-map>
    </body>
</html>
उदाहरण देखें

ध्यान दें कि पिछले उदाहरण में, हमने 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 के अन्य एपीआई के साथ किया जा सकता है. उदाहरण के लिए, स्नैप किए गए पॉइंट का पता पाने के लिए, Roads API से मिले placeId को दिया जा सकता है. जगह के आईडी के बारे में ज़्यादा जानने के लिए, जगह के आईडी की खास जानकारी देखें.

placeId की वैल्यू देने पर, अनुरोध में इनमें से कोई भी फ़ील्ड शामिल नहीं किया जा सकता:

  • address
  • latLng
  • location
  • componentRestrictions

यहां दिए गए उदाहरण में, जगह का आईडी स्वीकार किया जाता है, उससे जुड़ा पता ढूंढा जाता है, और मैप को उस जगह पर फ़ोकस किया जाता है. यह जानकारी विंडो भी दिखाता है, जिसमें संबंधित जगह का फ़ॉर्मैट किया गया पता दिखता है:

TypeScript

// Initialize the map.
async function init(): Promise<void> {
    const [{ Geocoder }, { InfoWindow }] = await Promise.all([
        google.maps.importLibrary('geocoding'),
        google.maps.importLibrary('maps'),
        google.maps.importLibrary('marker'),
    ]);

    const mapElement = document.querySelector('gmp-map')!;
    const innerMap = mapElement.innerMap;
    const geocoder = new Geocoder();
    const infoWindow = new InfoWindow();

    document.getElementById('submit')!.addEventListener('click', () => {
        void geocodePlaceId(geocoder, innerMap, infoWindow);
    });
}

// This function is called when the user clicks the UI button.
async function geocodePlaceId(
    geocoder: google.maps.Geocoder,
    map: google.maps.Map,
    infoWindow: google.maps.InfoWindow
) {
    const placeId = (document.getElementById('place-id') as HTMLInputElement)
        .value;

    const { AdvancedMarkerElement } = await google.maps.importLibrary('marker');

    const { results } = await geocoder.geocode({ placeId });
    if (results[0]) {
        map.setZoom(11);
        map.setCenter(results[0].geometry.location);

        const marker = new AdvancedMarkerElement({
            map,
            position: results[0].geometry.location,
        });

        infoWindow.setContent(results[0].formatted_address);
        infoWindow.open(map, marker);
    } else {
        window.alert('No results found');
    }
}

void init();

JavaScript

// Initialize the map.
async function init() {
    const [{ Geocoder }, { InfoWindow }] = await Promise.all([
        google.maps.importLibrary('geocoding'),
        google.maps.importLibrary('maps'),
        google.maps.importLibrary('marker'),
    ]);

    const mapElement = document.querySelector('gmp-map');
    const innerMap = mapElement.innerMap;
    const geocoder = new Geocoder();
    const infoWindow = new InfoWindow();

    document.getElementById('submit').addEventListener('click', () => {
        void geocodePlaceId(geocoder, innerMap, infoWindow);
    });
}

// This function is called when the user clicks the UI button.
async function geocodePlaceId(geocoder, map, infoWindow) {
    const placeId = document.getElementById('place-id').value;

    const { AdvancedMarkerElement } = await google.maps.importLibrary('marker');

    const { results } = await geocoder.geocode({ placeId });
    if (results[0]) {
        map.setZoom(11);
        map.setCenter(results[0].geometry.location);

        const marker = new AdvancedMarkerElement({
            map,
            position: results[0].geometry.location,
        });

        infoWindow.setContent(results[0].formatted_address);
        infoWindow.open(map, marker);
    } else {
        window.alert('No results found');
    }
}

void init();
उदाहरण देखें

सही पता या कोऑर्डिनेट एपीआई चुनना

पते और निर्देशांक से जुड़े सामान्य टास्क के लिए, google.maps.Geocoder की तुलना Google Maps Platform के अन्य एपीआई से करने के लिए, यहां दिए गए सेक्शन को बड़ा करें:

Geocoder की तुलना Google Maps Platform के अन्य एपीआई से करना

डेवलपर का लक्ष्य सुझाया गया एपीआई या तरीका कब इस्तेमाल करें
मोहल्ले के पूरे पते को LatLng निर्देशांकों में बदलना (फ़ॉरवर्ड जियोकोडिंग) geocoder.geocode({ address }) (google.maps.Geocoder) इसका इस्तेमाल तब करें, जब आपके पास पहले से ही पते की पूरी और साफ़ स्ट्रिंग हो और आपको मैप के निर्देशांक चाहिए हों.
जीपीएस या मैप पर क्लिक किए गए निर्देशांकों ({ lat, lng }) को किसी व्यक्ति के लिए आसानी से पढ़े जा सकने वाले मोहल्ले के पते में बदलना (रिवर्स जियोकोडिंग) geocoder.geocode({ location }) (google.maps.Geocoder) इसका इस्तेमाल फ़ील्ड रिपोर्टिंग, डिलीवरी पिन ड्रॉप या किसी निर्देशांक के लिए सबसे नज़दीकी मोहल्ले का पता दिखाने के लिए करें.
इनपुट फ़ील्ड में टाइप करते ही, पते के सुझाव दिखने की सुविधा <gmp-place-autocomplete> (PlaceAutocompleteElement) इसका इस्तेमाल, इंटरैक्टिव खोज बॉक्स के लिए करें. इससे, उपयोगकर्ता के टाइप करने पर, हर कीस्ट्रोक पर Geocoder को कॉल करने की ज़रूरत नहीं पड़ती.
चेकआउट या शिपिंग पते की पुष्टि करें, डाक कॉम्पोनेंट को स्टैंडर्ड बनाएं या सब-प्रमिस और यूनिट की डिलीवरी की जांच करें Address Validation API (POST https://addressvalidation.googleapis.com/v1:validateAddress) इसका इस्तेमाल ई-कॉमर्स चेकआउट, शिपिंग फ़ॉर्म, और वर्कफ़्लो के लिए करें. इनसे यह पुष्टि की जानी चाहिए कि डाक पता या अपार्टमेंट/यूनिट नंबर पर डिलीवरी की जा सकती है या नहीं. हालांकि, Geocoder इसकी पुष्टि नहीं करता.
किसी निर्देशांक (lat, lng) और टाइमस्टैंप को यूटीसी ऑफ़सेट (rawOffset, dstOffset) और आईएएनए timeZoneId में बदलें Time Zone API (GET https://maps.googleapis.com/maps/api/timezone/json) इसका इस्तेमाल तब करें, जब आपको किसी कोऑर्डिनेट और टाइमस्टैंप के लिए, आईएएनए टाइम ज़ोन आईडी, यूटीसी ऑफ़सेट या डेलाइट सेविंग ऑफ़सेट की ज़रूरत हो. हालांकि, Geocoder यह जानकारी नहीं दिखाता.