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

खास जानकारी

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

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

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

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

रिपोर्ट का इस्तेमाल करना

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

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

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

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

कीमत

Maps, रूट, और जगहें के लिए 16 जुलाई, 2018 से 'जितना इस्तेमाल करें, सिर्फ़ उतने पैसे चुकाएं' वाली कीमत तय करने की नई योजना लागू की गई है. JavaScript जियोकोडिंग सेवा के इस्तेमाल की नई कीमतों और इस्तेमाल की सीमाओं के बारे में ज़्यादा जानने के लिए, जियोकोडिंग एपीआई के लिए इस्तेमाल और बिलिंग देखें.

नीतियां

जियोकोडिंग सेवा का इस्तेमाल, जियोकोडिंग एपीआई के लिए बताई गई नीतियों के मुताबिक होना चाहिए.

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

जियोकोडिंग सेवा को ऐक्सेस करना एसिंक्रोनस होता है, क्योंकि 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 — उस जगह का जगह का आईडी जिसके लिए आपको सबसे नज़दीकी और पढ़ने लायक पता देना है. जगह के आईडी के लिए, पता वापस पाने के बारे में ज़्यादा जानें.

ज़रूरी नहीं पैरामीटर:

  • boundsLatLngBounds जिसके नतीजों में जियोकोड के आधार पर पूर्वाग्रह ज़्यादा प्रमुखता से दिखता है. bounds पैरामीटर, जियोकोडर के नतीजों पर ही असर डालेगा, पूरी तरह से पाबंदी नहीं लगाता. व्यूपोर्ट के मापदंड तय करने के बारे में ज़्यादा जानकारी नीचे दी गई है.
  • componentRestrictions — इसका इस्तेमाल, नतीजों को किसी खास इलाके तक सीमित करने के लिए किया जाता है. कॉम्पोनेंट को फ़िल्टर करने के बारे में ज़्यादा जानकारी नीचे दी गई है.
  • region — क्षेत्र का कोड, जिसे दो वर्णों वाले (बिना संख्या वाले) यूनिकोड के क्षेत्र के सबटैग के तौर पर बताया गया है. ज़्यादातर मामलों में, ये टैग सीधे तौर पर जाने-पहचाने ccTLD ("टॉप लेवल डोमेन") की दो वर्ण वाली वैल्यू से मैप करते हैं. region पैरामीटर का असर सिर्फ़ जियोकोडर के नतीजों पर होगा, पूरी तरह से पाबंदी नहीं. क्षेत्र के कोड के मापदंड तय करने के बारे में ज़्यादा जानकारी नीचे दी गई है.

जियोकोडिंग प्रतिक्रियाएं

जियोकोडिंग सेवा के लिए कॉलबैक करने के तरीके की ज़रूरत होती है, ताकि जियोकोडर के नतीजे वापस लाए जा सकें. इस कॉलबैक को दो पैरामीटर पास करने चाहिए, ताकि results और status कोड को इसी क्रम में होल्ड किया जा सके.

जियोकोडिंग परिणाम

GeocoderResult ऑब्जेक्ट, सिर्फ़ एक जियोकोडिंग नतीजा दिखाता है. जियोकोड का अनुरोध करने से एक से ज़्यादा नतीजे के ऑब्जेक्ट मिल सकते हैं:

results[]: {
 types[]: string,
 formatted_address: string,
 address_components[]: {
   short_name: string,
   long_name: string,
   postcode_localities[]: string,
   types[]: string
 },
 partial_match: boolean,
 place_id: string,
 postcode_localities[]: string,
 geometry: {
   location: LatLng,
   location_type: GeocoderLocationType
   viewport: LatLngBounds,
   bounds: LatLngBounds
 }
}

इन फ़ील्ड से जुड़ी जानकारी नीचे दी गई है:

  • types[] एक कलेक्शन है, जो दिखाए गए नतीजे का पता टाइप दिखाता है. इस कैटगरी में शून्य या उससे ज़्यादा टैग का एक सेट होता है, जो नतीजे में मिली सुविधा की पहचान करता है. उदाहरण के लिए, "शिकागो" का जियोकोड, "जगह" दिखाता है, जो बताता है कि "शिकागो" एक शहर है. साथ ही, यह भी "राजनैतिक" दिखाता है, जो बताता है कि यह एक राजनैतिक इकाई है. यहां पते के टाइप और पते के कॉम्पोनेंट टाइप के बारे में ज़्यादा जानकारी देखें.
  • formatted_address एक स्ट्रिंग है जिसमें इस जगह का पता होता है, ताकि लोग इसे आसानी से पढ़ सकें.

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

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

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

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

    पते के हर कॉम्पोनेंट में आम तौर पर नीचे दिए गए फ़ील्ड होते हैं:

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

    address_components[] कलेक्शन के बारे में इन तथ्यों पर ध्यान दें:

    • पते के कॉम्पोनेंट की कैटगरी में, formatted_address से ज़्यादा कॉम्पोनेंट हो सकते हैं.
    • यह ज़रूरी नहीं है कि इस कैटगरी में, formatted_address में दी गई पते वाली सभी राजनैतिक इकाइयों के अलावा, बाकी सभी राजनैतिक इकाइयां शामिल हों. किसी खास पते वाली सभी राजनैतिक इकाइयों को वापस लाने के लिए, आपको रिवर्स जियोकोडिंग का इस्तेमाल करना चाहिए. साथ ही, अनुरोध के लिए पते के अक्षांश/देशांतर को पैरामीटर के तौर पर पास करना चाहिए.
    • इस बात की कोई गारंटी नहीं है कि हर अनुरोध के लिए रिस्पॉन्स का फ़ॉर्मैट एक ही रहेगा. खास तौर पर, address_components की संख्या, अनुरोध किए गए पते के आधार पर अलग-अलग होती है. साथ ही, किसी एक पते के लिए, समय-समय पर इसमें बदलाव हो सकता है. कोई कॉम्पोनेंट, अरे में पोज़िशन बदल सकता है. कॉम्पोनेंट का टाइप बदल सकता है. ऐसा हो सकता है कि बाद के रिस्पॉन्स में कोई खास कॉम्पोनेंट मौजूद न हो.

    यहां पते के टाइप और पते के कॉम्पोनेंट टाइप के बारे में ज़्यादा जानकारी देखें.

  • partial_match बताता है कि जियोकोडर ने मूल अनुरोध का सटीक मिलान नहीं किया, हालांकि यह अनुरोध किए गए पते के भाग से मेल खा रहा था. हो सकता है कि आप गलत स्पेलिंग और/या अधूरे पते के लिए, मूल अनुरोध की जांच करना चाहें.

    आंशिक मिलान अक्सर उन मोहल्ले के पतों के लिए होते हैं जो आपके अनुरोध में पास किए गए शहर में मौजूद नहीं होते. कुछ हद तक मैच करने वाले नतीजे तब भी दिखाए जा सकते हैं, जब कोई अनुरोध एक ही शहर में दो या उससे ज़्यादा जगहों से मेल खाता है. उदाहरण के लिए, "हिलपर स्ट्रीट, ब्रिस्टल, यूनाइटेड किंगडम", दोनों के लिए कुछ हद तक मैच करने वाला नतीजा: हेनरी स्ट्रीट और हेनरीटा स्ट्रीट, दोनों के लिए. ध्यान दें कि अगर किसी अनुरोध में गलत स्पेलिंग वाला पता कॉम्पोनेंट शामिल है, तो जियोकोडिंग सेवा दूसरे पते का सुझाव दे सकती है. इस तरह ट्रिगर किए जाने वाले सुझाव भी 'कुछ हद तक मैच करने वाले वाक्यांशों' के तौर पर मार्क कर दिए जाएंगे.

  • place_idकिसी जगह का यूनीक आइडेंटिफ़ायर है, जिसका इस्तेमाल दूसरे Google API के साथ किया जा सकता है. उदाहरण के लिए, किसी स्थानीय कारोबार की जानकारी पाने के लिए, Google स्थल एपीआई लाइब्रेरी के साथ place_id का इस्तेमाल किया जा सकता है. जैसे, फ़ोन नंबर, कारोबार के खुले होने का समय, उपयोगकर्ताओं की समीक्षाएं वगैरह. जगह के आईडी की खास जानकारी देखें.
  • postcode_localities[] एक कलेक्शन है, जो पिन कोड में शामिल सभी इलाकों के बारे में जानकारी देता है. यह सिर्फ़ तब मौजूद होता है, जब नतीजा एक ऐसा पिन कोड हो जिसमें एक से ज़्यादा शहर शामिल हों.
  • geometry में यह जानकारी शामिल है:

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

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

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

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

GeocoderResult में मौजूद types[] कैटगरी से पता चलता है कि पता किस तरह का है. किसी खास पता कॉम्पोनेंट के टाइप के बारे में बताने के लिए, types[] कलेक्शन को GeocoderAddressComponent में भी दिखाया जा सकता है. जियोकोडर की ओर से लौटाए गए पते कई तरह के हो सकते हैं; इन पतों को टैग माना जा सकता है. उदाहरण के लिए, कई शहर political और locality टाइप के साथ टैग किए गए हैं.

इन टाइप के लिए जियोकोडर, पता और पते के कॉम्पोनेंट, दोनों तरह का इस्तेमाल करता है और ये तरीके इस्तेमाल करते हैं:

  • street_address में मोहल्ले का सटीक पता दिया जाता है.
  • route नाम वाले रास्ते को दिखाता है (जैसे कि "US 101").
  • intersection एक बड़े चौराहे को दिखाता है, जहां आम तौर पर दो मुख्य सड़कें होती हैं.
  • political एक राजनैतिक इकाई है. आम तौर पर, यह टाइप, कुछ सिविल एडमिनिस्ट्रेशन का पॉलीगॉन दिखाता है.
  • country, राष्ट्रीय राजनैतिक इकाई के बारे में बताता है. आम तौर पर, यह जियोकोडर से मिला सबसे ज़्यादा क्रम वाला ऑर्डर होता है.
  • administrative_area_level_1, देश के लेवल से नीचे की फ़र्स्ट ऑर्डर वाली नागरिक इकाई है. संयुक्त राज्य अमेरिका में, ये प्रशासनिक स्तर राज्य के हैं. सभी देशों में, ये प्रशासनिक स्तर नहीं दिखते. ज़्यादातर मामलों में, व्यवस्थापकीय_area_level_1 छोटे नाम ISO 3166-2 सबडिविज़न और अन्य व्यापक रूप से सर्कुलेट होने वाली सूचियों से काफ़ी हद तक मेल खाएंगे. हालांकि, इसकी कोई गारंटी नहीं है, क्योंकि हमारे जियोकोडिंग नतीजे कई तरह के सिग्नल और जगह की जानकारी पर आधारित होते हैं.
  • administrative_area_level_2, देश के लेवल से नीचे की दूसरी-ऑर्डर की सिविल इकाई के बारे में बताता है. अमेरिका में ये प्रशासनिक स्तर, काउंटी के हैं. सभी देशों में, ये प्रशासनिक स्तर नहीं दिखते.
  • administrative_area_level_3, देश के लेवल से नीचे की तीसरे ऑर्डर की नागरिक इकाई के बारे में बताता है. यह टाइप, छोटे सिविल डिवीज़न को दिखाता है. सभी देशों में ये प्रशासनिक स्तर नहीं दिखते.
  • administrative_area_level_4, देश के लेवल से नीचे की चौथे क्रम की दीवानी इकाई के बारे में बताता है. यह टाइप, छोटे सिविल डिवीज़न को दिखाता है. सभी देशों में ये प्रशासनिक स्तर नहीं दिखते.
  • administrative_area_level_5, देश के लेवल से नीचे की पांचवें ऑर्डर की सिविल इकाई के बारे में बताता है. यह टाइप, छोटे सिविल डिवीज़न को दिखाता है. सभी देशों में ये प्रशासनिक स्तर नहीं दिखते.
  • administrative_area_level_6, देश के लेवल से नीचे की छठे क्रम की सिविल इकाई के बारे में बताता है. यह टाइप, छोटे सिविल डिवीज़न को दिखाता है. सभी देशों में ये प्रशासनिक स्तर नहीं दिखते.
  • administrative_area_level_7, देश के स्तर से नीचे सातवें क्रम की दीवानी इकाई के बारे में बताता है. यह टाइप, छोटे सिविल डिवीज़न को दिखाता है. सभी देशों में ये प्रशासनिक स्तर नहीं दिखते.
  • colloquial_area से इकाई के लिए, आम तौर पर इस्तेमाल किए जाने वाले वैकल्पिक नाम का पता चलता है.
  • locality किसी शहरी या नगर की राजनैतिक इकाई को दिखाता है.
  • sublocality, किसी इलाके के नीचे फ़र्स्ट-ऑर्डर सिविल एंटिटी को दिखाता है. कुछ जगहों के लिए, इनमें से कोई एक अतिरिक्त तरीका मिल सकता है: sublocality_level_1 से sublocality_level_5 तक. हर मोहल्ले का लेवल एक सिविल एंटिटी होती है. बड़ी संख्याएं, छोटे भौगोलिक इलाके को दिखाती हैं.
  • neighborhood से पता चलता है कि आस-पास का नाम दिया गया है
  • premise से किसी जगह का नाम पता चलता है. आम तौर पर, यह ऐसी इमारत या इमारतों का संग्रह होता है जिनका नाम एक ही होता है
  • subpremise, नाम वाली जगह के नीचे फ़र्स्ट-ऑर्डर इकाई के बारे में बताता है. आम तौर पर, यह एक ऐसी इमारत होती है जिसमें एक ही नाम होता है.
  • plus_code, कोड में बदली गई जगह की जानकारी का रेफ़रंस दिखाता है. इसे अक्षांश और देशांतर से मिलता है. प्लस कोड का इस्तेमाल उन जगहों के लिए किया जा सकता है जहां मोहल्ले का पता नहीं दिया जाता. इन जगहों पर पते नहीं जोड़े जाते या सड़कों के नाम नहीं दिए जाते. ज़्यादा जानकारी के लिए, https://plus.codes पर जाएं.
  • postal_code एक पिन कोड दिखाता है, जिसका इस्तेमाल देश में डाक पते के लिए किया जाता है.
  • natural_feature किसी खास प्राकृतिक विशेषता को दिखाता है.
  • airport किसी हवाई अड्डे का संकेत देता है.
  • park नाम वाले पार्क को दिखाता है.
  • point_of_interest पसंदीदा जगह दिखाता है. आम तौर पर, ये "लोकप्रिय जगह" ऐसी मुख्य स्थानीय इकाइयां होती हैं जो किसी अन्य कैटगरी में आसानी से नहीं फ़िट होती हैं, जैसे कि "एंपायर स्टेट बिल्डिंग" या "आइफ़िल टावर".

टाइप की खाली सूची से पता चलता है कि किसी खास पता कॉम्पोनेंट के लिए कोई टाइप उपलब्ध नहीं है. उदाहरण के लिए, फ़्रांस में लू-डिट.

ऊपर दिए गए के अलावा, पते के कॉम्पोनेंट में नीचे दिए गए टाइप शामिल हो सकते हैं.

ध्यान दें: यह पूरी सूची नहीं है और इसमें बदलाव किया जा सकता है.

  • floor किसी इमारत के पते में बताई गई मंज़िल की जानकारी देता है.
  • आम तौर पर, establishment ऐसी जगह को दिखाता है जिसे अब तक कैटगरी में नहीं बांटा गया है.
  • landmark आस-पास की ऐसी जगह दिखाता है जिसका इस्तेमाल रेफ़रंस के तौर पर किया जाता है. इससे, नेविगेशन में मदद मिलती है.
  • point_of_interest पसंदीदा जगह दिखाता है.
  • parking पार्किंग लॉट या पार्किंग की जगह के बारे में बताता है.
  • post_box किसी खास पोस्टल बॉक्स को दिखाता है.
  • postal_town, भौगोलिक इलाकों के ग्रुप को दिखाता है, जैसे कि locality और sublocality. इसका इस्तेमाल कुछ देशों में, डाक पतों के लिए किया जाता है.
  • room इमारत के पते का कमरा बताता है.
  • street_number, सड़क का सटीक नंबर दिखाता है.
  • bus_station, train_station, और transit_station से बस, ट्रेन या सार्वजनिक परिवहन के स्टॉप की जगह की जानकारी मिलती है.

स्थिति कोड

status कोड इनमें से कोई एक वैल्यू दिखा सकता है:

  • "OK" बताता है कि कोई गड़बड़ी नहीं हुई; पते को सफलतापूर्वक पार्स कर दिया गया था और कम से कम एक जियोकोड लौटाया गया.
  • "ZERO_RESULTS" बताता है कि जियोकोड सफल था, लेकिन कोई नतीजा नहीं मिला. ऐसा तब हो सकता है, जब जियोकोडर address मौजूद न हो.
  • "OVER_QUERY_LIMIT" बताता है कि आप अपना कोटा पार कर चुके हैं.
  • "REQUEST_DENIED" बताता है कि आपका अनुरोध अस्वीकार कर दिया गया था. वेब पेज पर जियोकोडर का इस्तेमाल करने की अनुमति नहीं है.
  • आम तौर पर, "INVALID_REQUEST" बताता है कि क्वेरी (address, components या latlng) मौजूद नहीं है.
  • "UNKNOWN_ERROR" से पता चलता है कि सर्वर की गड़बड़ी की वजह से अनुरोध को प्रोसेस नहीं किया जा सका. फिर से कोशिश करने पर हो सकता है कि अनुरोध पूरा हो जाए.
  • "ERROR" बताता है कि अनुरोध का समय खत्म हो गया था या Google सर्वर से संपर्क करने में कोई समस्या हुई थी. फिर से कोशिश करने पर हो सकता है कि अनुरोध पूरा हो जाए.

इस उदाहरण में, हमने एक पते को जियोकोड किया है और लौटाए गए अक्षांश और देशांतर वैल्यू पर एक मार्कर लगाया है. ध्यान दें कि हैंडलर को पहचान छिपाने वाले फ़ंक्शन के लिटरल के तौर पर पास किया जाता है.

  var geocoder;
  var map;
  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var mapOptions = {
      zoom: 8,
      center: latlng
    }
    map = new google.maps.Map(document.getElementById('map'), mapOptions);
  }

  function codeAddress() {
    var address = document.getElementById('address').value;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == 'OK') {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
      } else {
        alert('Geocode was not successful for the following reason: ' + status);
      }
    });
  }

<body onload="initialize()">
 <div id="map" style="width: 320px; height: 480px;"></div>
  <div>
    <input id="address" type="textbox" value="Sydney, NSW">
    <input type="button" value="Encode" onclick="codeAddress()">
  </div>
</body>

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

व्यूपोर्ट मापदंड तय करना

आप जियोकोडिंग सेवा को दिए गए व्यूपोर्ट (जिसे बाउंडिंग बॉक्स के रूप में दिखाया जाता है) में नतीजों को प्राथमिकता देने के लिए निर्देश दे सकते हैं. ऐसा करने के लिए, GeocoderRequest ऑब्जेक्ट लिटरल में bounds पैरामीटर को सेट करें, ताकि इस व्यूपोर्ट की सीमाएं तय की जा सकें. ध्यान दें कि मापदंड तय करके, सिर्फ़ सीमाओं के अंदर नतीजे प्राथमिकता दी जाती है. अगर इन सीमाओं से बाहर के ज़्यादा काम के नतीजे मौजूद हैं, तो उन्हें भी शामिल किया जा सकता है.

उदाहरण के लिए, "विनेटका" के लिए जियोकोड करने से आम तौर पर शिकागो के इस उपनगरीय इलाके को पता चलता है:

{
  "types":["locality","political"],
  "formatted_address":"Winnetka, IL, USA",
  "address_components":[{
    "long_name":"Winnetka",
    "short_name":"Winnetka",
    "types":["locality","political"]
  },{
    "long_name":"Illinois",
    "short_name":"IL",
    "types":["administrative_area_level_1","political"]
  },{
    "long_name":"United States",
    "short_name":"US",
    "types":["country","political"]
  }],
  "geometry":{
    "location":[ -87.7417070, 42.1083080],
    "location_type":"APPROXIMATE"
  },
  "place_id": "ChIJW8Va5TnED4gRY91Ng47qy3Q"
}

हालांकि, सैन फ़र्नांडो वैली ऑफ़ लॉस एंजेलिस के लिए, बाउंडिंग बॉक्स को तय करने वाला bounds पैरामीटर तय करने पर, इस जियोकोड के नतीजे के तौर पर, उस जगह "विनेटका" नाम के आस-पास का इलाका दिखेगा:

{
  "types":["sublocality","political"],
  "formatted_address":"Winnetka, California, USA",
  "address_components":[{
    "long_name":"Winnetka",
    "short_name":"Winnetka",
    "types":["sublocality","political"]
  },{
    "long_name":"Los Angeles",
    "short_name":"Los Angeles",
    "types":["administrative_area_level_3","political"]
  },{
    "long_name":"Los Angeles",
    "short_name":"Los Angeles",
    "types":["administrative_area_level_2","political"]
  },{
    "long_name":"California",
    "short_name":"CA",
    "types":["administrative_area_level_1","political"]
  },{
    "long_name":"United States",
    "short_name":"US",
    "types":["country","political"]
  }],
  "geometry":{
    "location": [34.213171,-118.571022],
    "location_type":"APPROXIMATE"
  },
  "place_id": "ChIJ0fd4S_KbwoAR2hRDrsr3HmQ"
}

इलाके के कोड का मापदंड तय करना

जियोकोडिंग सेवा को इस तरह सेट किया जा सकता है कि region पैरामीटर का इस्तेमाल करके, किसी खास इलाके के हिसाब से नतीजे दिखाए जा सकें. यह पैरामीटर एक क्षेत्र कोड लेता है, जिसे दो-वर्ण (बिना संख्या वाले) यूनिकोड क्षेत्र के सबटैग के तौर पर बताया जाता है. ये टैग सीधे तौर पर जाने-पहचाने ccTLD ("टॉप लेवल डोमेन") से मैप करते हैं. उदाहरण के लिए, "co.uk" में "uk" जैसी दो वर्ण वाली वैल्यू. कुछ मामलों में, region टैग, ISO-3166-1 कोड के साथ भी काम करता है, जो कभी-कभी ccTLD वैल्यू से अलग होते हैं. जैसे, "ग्रेट ब्रिटेन" के लिए "GB".

region पैरामीटर का इस्तेमाल करते समय:

  • सिर्फ़ एक देश या इलाके का नाम डालें. एक से ज़्यादा वैल्यू को नज़रअंदाज़ कर दिया जाता है और इसकी वजह से अनुरोध फ़ेल हो सकता है.
  • क्षेत्र के लिए सिर्फ़ दो वर्ण वाले सबटैग (यूनिकोड CLDR फ़ॉर्मैट) इस्तेमाल करें. अन्य सभी इनपुट की वजह से गड़बड़ियां होंगी.
  • यह सुविधा सिर्फ़ उन देशों और इलाकों में उपलब्ध है जिनके नाम, Google Maps Platform की कवरेज की जानकारी में दिए गए हैं.

जियोकोडिंग अनुरोध हर उस डोमेन के लिए भेजे जा सकते हैं, जिसमें मुख्य Google Maps ऐप्लिकेशन जियोकोडिंग की सुविधा देता है. ध्यान दें कि किसी खास डोमेन के लिए, मापदंड से बाहर के नतीजे सिर्फ़ प्राथमिकता दी जाती है. अगर इस डोमेन से बाहर के ज़्यादा काम के नतीजे मौजूद हैं, तो उन्हें भी शामिल किया जा सकता है.

उदाहरण के लिए, "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 पैरामीटर का इस्तेमाल करने के बारे में बताया गया है:

function codeAddress() {
geocoder.geocode({
  componentRestrictions: {
    country: 'AU',
    postalCode: '2000'
  }
}, function(results, status) {
  if (status == 'OK') {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  } else {
    window.alert('Geocode was not successful for the following reason: ' + status);
  }
});
}

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

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

टेक्स्ट address देने के बजाय, location पैरामीटर में अक्षांश/देशांतर की जोड़ी को कॉमा लगाकर अलग करें.

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

TypeScript

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 8,
      center: { lat: 40.731, lng: -73.997 },
    }
  );
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  (document.getElementById("submit") as HTMLElement).addEventListener(
    "click",
    () => {
      geocodeLatLng(geocoder, map, infowindow);
    }
  );
}

function geocodeLatLng(
  geocoder: google.maps.Geocoder,
  map: google.maps.Map,
  infowindow: google.maps.InfoWindow
) {
  const input = (document.getElementById("latlng") as HTMLInputElement).value;
  const latlngStr = input.split(",", 2);
  const latlng = {
    lat: parseFloat(latlngStr[0]),
    lng: parseFloat(latlngStr[1]),
  };

  geocoder
    .geocode({ location: latlng })
    .then((response) => {
      if (response.results[0]) {
        map.setZoom(11);

        const marker = new google.maps.Marker({
          position: latlng,
          map: map,
        });

        infowindow.setContent(response.results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 8,
    center: { lat: 40.731, lng: -73.997 },
  });
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  document.getElementById("submit").addEventListener("click", () => {
    geocodeLatLng(geocoder, map, infowindow);
  });
}

function geocodeLatLng(geocoder, map, infowindow) {
  const input = document.getElementById("latlng").value;
  const latlngStr = input.split(",", 2);
  const latlng = {
    lat: parseFloat(latlngStr[0]),
    lng: parseFloat(latlngStr[1]),
  };

  geocoder
    .geocode({ location: latlng })
    .then((response) => {
      if (response.results[0]) {
        map.setZoom(11);

        const marker = new google.maps.Marker({
          position: latlng,
          map: map,
        });

        infowindow.setContent(response.results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

window.initMap = initMap;
उदाहरण देखें

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

ध्यान दें कि पिछले उदाहरण में हमने पहला नतीजा results[0] को चुनकर दिखाया था. रिवर्स जियोकोडर अक्सर एक से ज़्यादा नतीजे लौटाता है. जियोकोड किए गए पते सिर्फ़ डाक पते ही नहीं होते, बल्कि किसी जगह का भौगोलिक रूप से कोई नाम भी हो सकते हैं. उदाहरण के लिए, जब शिकागो शहर में कोई पॉइंट जियोकोड किया जाता है, तो जियोकोड किए गए पॉइंट को मोहल्ले के पते के रूप में, शहर (शिकागो), उसके राज्य (इलीनॉय) या देश (अमेरिका) के रूप में लेबल किया जा सकता है. सभी जियोकोडर के पते हैं. रिवर्स जियोकोडर इन सभी परिणामों को लौटाता है.

रिवर्स जियोकोडर राजनीतिक इकाइयों (देशों, प्रांतों, शहरों और इलाकों), मोहल्ले के पतों, और पिन कोड से मेल खाता है.

यहां पतों की सूची का एक उदाहरण दिया गया है, जो ऊपर दी गई क्वेरी से मिल सकता है:

results[0].formatted_address: "277 Bedford Ave, Brooklyn, NY 11211, USA"
results[1].formatted_address: "Grand St/Bedford Av, Brooklyn, NY 11211, USA"
results[2].formatted_address: "Williamsburg, Brooklyn, NY, USA"
results[3].formatted_address: "Brooklyn, NY, USA"
results[4].formatted_address: "New York, NY, USA"
results[5].formatted_address: "Brooklyn, NY 11211, USA"
results[6].formatted_address: "Kings County, NY, USA"
results[7].formatted_address: "New York-Northern New Jersey-Long Island, NY-NJ-PA, USA"
results[8].formatted_address: "New York Metropolitan Area, USA"
results[9].formatted_address: "New York, USA"

पते, सबसे सही से सबसे कम मैच होने के क्रम में दिखाए जाते हैं. आम तौर पर, सटीक पता सबसे अहम नतीजा होता है, जैसा कि इस मामले में होता है. ध्यान दें कि हम अलग-अलग तरह के पते दिखाते हैं. इनमें मोहल्ले का पता, मोहल्ले, शहर, काउंटी, राज्य जैसी कम राजनैतिक इकाइयां शामिल होती हैं. अगर आपको किसी सामान्य पते का मिलान करना है, तो results[].types फ़ील्ड की जांच करें.

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

जगह के आईडी से पता पाने की सुविधा

किसी जगह के आईडी का पता ढूंढने के लिए, placeId दें. जगह का आईडी, एक यूनीक आइडेंटिफ़ायर होता है. इसका इस्तेमाल अन्य Google API के साथ किया जा सकता है. उदाहरण के लिए, किसी स्नैप किए गए पॉइंट का पता पाने के लिए, Roads API से मिला placeId दिया जा सकता है. जगह के आईडी के बारे में ज़्यादा जानने के लिए, जगह के आईडी की खास जानकारी देखें.

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

  • address
  • latLng
  • location
  • componentRestrictions

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

TypeScript

// Initialize the map.
function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 8,
      center: { lat: 40.72, lng: -73.96 },
    }
  );
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  (document.getElementById("submit") as HTMLElement).addEventListener(
    "click",
    () => {
      geocodePlaceId(geocoder, map, infowindow);
    }
  );
}

// This function is called when the user clicks the UI button requesting
// a geocode of a place ID.
function geocodePlaceId(
  geocoder: google.maps.Geocoder,
  map: google.maps.Map,
  infowindow: google.maps.InfoWindow
) {
  const placeId = (document.getElementById("place-id") as HTMLInputElement)
    .value;

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

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

        infowindow.setContent(results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// Initialize the map.
function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 8,
    center: { lat: 40.72, lng: -73.96 },
  });
  const geocoder = new google.maps.Geocoder();
  const infowindow = new google.maps.InfoWindow();

  document.getElementById("submit").addEventListener("click", () => {
    geocodePlaceId(geocoder, map, infowindow);
  });
}

// This function is called when the user clicks the UI button requesting
// a geocode of a place ID.
function geocodePlaceId(geocoder, map, infowindow) {
  const placeId = document.getElementById("place-id").value;

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

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

        infowindow.setContent(results[0].formatted_address);
        infowindow.open(map, marker);
      } else {
        window.alert("No results found");
      }
    })
    .catch((e) => window.alert("Geocoder failed due to: " + e));
}

window.initMap = initMap;
उदाहरण देखें

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