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

खास जानकारी

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

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

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

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

शुरू करना

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

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

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

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

कीमत

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

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

पते के प्रकार और पता घटक के प्रकार

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

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

  • street_address से सड़क का सटीक पता मिलता है.
  • route, नाम वाले रास्ते के बारे में बताता है (जैसे कि "US 101").
  • intersection से पता चलता है कि सड़क दो मुख्य सड़कों से होकर गुज़रती है.
  • political, एक राजनैतिक इकाई है. आम तौर पर, यह टाइप कुछ सिविल एडमिनिस्ट्रेशन का पॉलीगॉन दिखाता है.
  • country से राष्ट्रीय राजनैतिक इकाई की जानकारी मिलती है. आम तौर पर, यह जीओकोडर का सबसे ज़्यादा ऑर्डर टाइप होता है.
  • administrative_area_level_1, देश के स्तर से नीचे की पहली आदेश वाली नागरिक इकाई होने का संकेत देता है. अमेरिका में, ये एडमिन लेवल राज्य होते हैं. सभी देश, ये एडमिन लेवल नहीं दिखाते हैं. ज़्यादातर मामलों में, admin_area_level_1 छोटे नाम ISO 3166-2 उप-विभाजन और दूसरे बड़े पैमाने पर दिखाई जाने वाली सूचियों से मेल खाएंगे; हालांकि इसकी गारंटी नहीं है क्योंकि हमारे जियोकोडिंग नतीजे कई तरह के सिग्नल और जगह के डेटा पर आधारित होते हैं.
  • administrative_area_level_2, देश के स्तर से नीचे एक दूसरे क्रम की नागरिक इकाई है. अमेरिका में, प्रशासनिक इलाकों में प्रशासनिक इलाकों को शामिल किया जाता है. सभी देश, ये एडमिन लेवल नहीं दिखाते हैं.
  • administrative_area_level_3 में, देश के स्तर से नीचे मौजूद तीसरे पक्ष की सिविल इकाई के बारे में बताया गया है. यह टाइप मामूली सिविल डिवीज़न दिखाता है. सभी देश ये प्रशासनिक स्तर नहीं दिखाते.
  • administrative_area_level_4, देश के स्तर से नीचे चौथे क्रम की नागरिक इकाई बताता है. यह टाइप मामूली सिविल डिवीज़न दिखाता है. सभी देश ये प्रशासनिक स्तर नहीं दिखाते.
  • administrative_area_level_5, देश के स्तर से नीचे की सूची में पांचवीं क्रम की सिविल इकाई है. यह टाइप मामूली सिविल डिवीज़न दिखाता है. सभी देश ये प्रशासनिक स्तर नहीं दिखाते.
  • administrative_area_level_6, देश के स्तर से नीचे की ओर छठी रैंक वाली सिविल इकाई दिखाता है. यह टाइप मामूली सिविल डिवीज़न दिखाता है. सभी देश ये प्रशासनिक स्तर नहीं दिखाते.
  • administrative_area_level_7, देश के स्तर से नीचे की सातवीं आदेश वाली नागरिक इकाई है. यह टाइप मामूली सिविल डिवीज़न दिखाता है. सभी देश ये प्रशासनिक स्तर नहीं दिखाते.
  • colloquial_area, इकाई के लिए आम तौर पर इस्तेमाल होने वाले वैकल्पिक नाम के बारे में बताता है.
  • locality में, कारोबार की इकाई का नाम शामिल किया गया है.
  • sublocality से, किसी इलाके के नीचे मौजूद पहले क्षेत्र की नागरिक इकाई का पता चलता है. कुछ जगहों के लिए, आपको इनमें से कोई एक विकल्प मिल सकता है: sublocality_level_1 से sublocality_level_5. हर मोहल्ला स्तर एक सभ्य इकाई है. बड़ी संख्याएं एक छोटे भौगोलिक क्षेत्र का संकेत देती हैं.
  • neighborhood नाम वाले इलाके को दिखाता है
  • premise से, किसी खास जगह का पता चलता है. आम तौर पर, यह इमारत किसी इमारत या किसी इमारत के नाम से मौजूद होती है
  • subpremise, नाम वाली जगह के पहले क्रम वाली इकाई के बारे में बताता है. आम तौर पर, इमारतों के संग्रह में मौजूद किसी नाम वाली एक ही इमारत
  • plus_code से, अक्षांश और देशांतर से कोड में बदली गई जगह की जानकारी के रेफ़रंस का पता चलता है. 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"
}

'es' फ़ील्ड (स्पेन) पर सेट किए गए region फ़ील्ड के साथ "टोलेडो" के लिए इंट्रानेट, स्पैनिश शहर को दिखाएगा:

{
  "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 के बजाय AND के तौर पर करता है.

कॉम्पोनेंट फ़िल्टर में इनमें से एक या एक से ज़्यादा आइटम होते हैं:

  • route किसी रास्ते के लंबे या छोटे नाम से मेल खाता है.
  • locality, मोहल्ले और उप-मोहल्ले के प्रकार से मेल खाता है.
  • administrativeArea, प्रशासनिक क्षेत्र के सभी लेवल से मेल खाता है.
  • postalCode, पिन कोड और पिन कोड के प्रीफ़िक्स से मेल खाता है.
  • country, किसी देश के नाम या दो अक्षरों वाले ISO 3166-1 देश कोड से मेल खाता है. ध्यान दें: एपीआई में, देशों के ISO मानक का पालन किया जाता है. साथ ही, फ़िल्टर करने का तरीका, देश के ISO कोड का इस्तेमाल करते समय बेहतर तरीके से काम करता है.

इस उदाहरण में 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);
  }
});
}

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

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

टेक्स्ट के तौर पर 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 के साथ इस्तेमाल किया जा सकता है. उदाहरण के लिए, आप दिए गए स्पीड एपीआई से मिलने वाले 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;
उदाहरण देखें

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