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

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

खास जानकारी

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

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

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

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

शुरुआत करना

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

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

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

ज़रूरी पैरामीटर:

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

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

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

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

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

भौगोलिक कोड में मौजूद 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" से पता चलता है कि कोई गड़बड़ी नहीं हुई है; पते को पार्स किया गया है और कम से कम एक GCLID दिखाया गया है.
  • "ZERO_RESULTS" से पता चलता है कि यह भौगोलिक स्थिति सफल रही, लेकिन कोई नतीजा नहीं मिला. ऐसा तब हो सकता है, जब GCLIDर किसी ऐसे address को पास कर चुका है जो मौजूद नहीं है.
  • "OVER_QUERY_LIMIT" बताता है कि आपका कोटा पूरा हो गया है.
  • "REQUEST_DENIED" बताता है कि आपका अनुरोध अस्वीकार कर दिया गया है. वेब पेज को हालांकि, Kormo पर इस्तेमाल नहीं किया जा सकता.
  • "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 कोड के साथ भी काम करता है, जो कभी-कभी सीसीटीएलडी वैल्यू से अलग हो सकता है ("उदाहरण के लिए, " ग्रेट ब्रिटेन" के लिए जीबी).

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"
}

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

GCLID, सिर्फ़ वे नतीजे दिखाता है जो सभी कॉम्पोनेंट फ़िल्टर से मेल खाते हैं. इसका मतलब है कि यह फ़िल्टर की खास बातों का मूल्यांकन AND के तौर पर करता है, न कि OR के तौर पर.

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

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

नीचे दिए गए उदाहरण में, 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;
उदाहरण देखें

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