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

खास जानकारी

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

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

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

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

प्रारंभ करना

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 दिखेगा.

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

कीमत

16 जुलाई, 2018 से Maps, रास्तों, और जगहों के लिए, इस्तेमाल के हिसाब से पैसे चुकाने का एक नया प्राइसिंग प्लान लागू किया गया था. 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 API के साथ किया जा सकता है. उदाहरण के लिए, Google Places API की लाइब्रेरी के साथ place_id का इस्तेमाल करके, किसी स्थानीय कारोबार की जानकारी पाई जा सकती है. जैसे, फ़ोन नंबर, कारोबार के खुले होने का समय, उपयोगकर्ताओं की समीक्षाएं वगैरह. जगह के आईडी की खास जानकारी देखें.
  • postcode_localities[] एक कलेक्शन है, जो पिन कोड में शामिल सभी इलाकों के बारे में बताता है. यह सिर्फ़ तब मौजूद होता है, जब नतीजा ऐसा पिन कोड हो जिसमें एक से ज़्यादा इलाके शामिल हों.
  • geometry में यह जानकारी शामिल है:

    • location में जियोकोड किए गए अक्षांश,देशांतर की वैल्यू शामिल होती है. ध्यान दें कि हम इस जगह को LatLng ऑब्जेक्ट के तौर पर दिखाते हैं, न कि फ़ॉर्मैट की गई स्ट्रिंग के तौर पर.
    • location_type, बताई गई जगह के बारे में अतिरिक्त डेटा सेव करता है. फ़िलहाल, ये वैल्यू इस्तेमाल की जा सकती हैं:
      • ROOFTOP से पता चलता है कि दिखाए गए नतीजे में सटीक जियोकोड दिखता है.
      • RANGE_INTERPOLATED बताता है कि दिखाया गया नतीजा, दो सटीक पॉइंट (जैसे कि चौराहों) के बीच इंटरपोलेट किया गया अनुमान (आम तौर पर सड़क पर) दिखाता है. इंटरपोलेट किए गए नतीजे आम तौर पर तब दिखाए जाते हैं, जब किसी मोहल्ले के पते के लिए छत पर जियोकोड उपलब्ध नहीं होते.
      • GEOMETRIC_CENTER इससे पता चलता है कि मिला नतीजा, किसी नतीजे का ज्यामितीय केंद्र है, जैसे कि पॉलीलाइन (उदाहरण के लिए, कोई सड़क) या पॉलीगॉन (क्षेत्र).
      • APPROXIMATE से पता चलता है कि टेस्ट के तौर पर मिला नतीजा अनुमानित है.

    • viewport, दिखाए गए नतीजे के लिए सुझाया गया व्यूपोर्ट सेव करता है.
    • bounds (ज़रूरी नहीं है) LatLngBounds को सेव करता है, जिसमें दिखाए गए नतीजे को पूरी तरह शामिल किया जा सकता है. ध्यान दें कि हो सकता है कि ये सीमाएं सुझाए गए व्यूपोर्ट से मेल न खाएं. (उदाहरण के लिए, सैन फ़्रांसिस्को में फ़ैरालन द्वीप समूह शामिल हैं, जो तकनीकी रूप से शहर का हिस्सा हैं. हालांकि, इन्हें व्यूपोर्ट में नहीं दिखाया जाना चाहिए.)

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

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

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 पैरामीटर को लिटरल वैल्यू में सेट करें, ताकि इस व्यूपोर्ट की सीमाएं तय की जा सकें. ध्यान दें कि सीमा के अंदर सिर्फ़ नतीजों को प्राथमिकता देना, इन सीमाओं के बाहर ज़्यादा काम के नतीजे मौजूद होने पर उन्हें शामिल किया जा सकता है.

उदाहरण के लिए, "Winnetka" के लिए जियोकोड आम तौर पर शिकागो के इस सबअर्ब को दिखाता है:

{
  "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 ऐप्लिकेशन में जियोकोडिंग की सुविधा है. ध्यान दें कि पूर्वाग्रह सिर्फ़ किसी खास डोमेन के लिए नतीजों को प्राथमिकता देता है. अगर इस डोमेन के बाहर ज़्यादा काम के नतीजे मौजूद हैं, तो उन्हें शामिल किया जा सकता है.

उदाहरण के लिए, "टोलेडो" के लिए जियोकोड यह नतीजा दिखाता है, क्योंकि जियोकोडिंग सेवा के लिए डिफ़ॉल्ट डोमेन अमेरिका पर सेट है:

{
  "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 देश कोड से मेल खाता है. ध्यान दें: एपीआई तय करने वाले देशों के आईएसओ मानक का पालन करता है. फ़िल्टर उस देश के आईएसओ कोड का इस्तेमाल करते समय सबसे अच्छी तरह काम करता है.

इस उदाहरण में, componentRestrictions पैरामीटर का इस्तेमाल करके, country और postalCode के हिसाब से फ़िल्टर करने का तरीका बताया गया है:

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=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({ 
    '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-descriptors-feedback@google.com पर ईमेल करें.

रिवर्स जियोकोडिंग (पता लुकअप)

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

टेक्स्ट वाले 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;
उदाहरण देखें

सैंपल आज़माएं