Google Maps Platform का इस्तेमाल करके, जगह की पुष्टि करने की सुविधा बनाना

मकसद

आपको अक्सर किसी जगह की पुष्टि करनी पड़ती है. Google Maps Platform में कुछ ऐसी सेवाएं हैं जिनकी मदद से, इस उदाहरण में बताए गए काम को किया जा सकता है. इस दस्तावेज़ से, जगह की पुष्टि करने वाली दो मुख्य सेवाओं - पते की पुष्टि करने वाले एपीआई और जियोकोडिंग एपीआई में से किसी एक को चुनने में मदद मिलती है.

पते की पुष्टि करने वाला एपीआई, Google Maps Platform की एक सुविधा है. इसकी मदद से, ग्राहक यह पुष्टि कर सकते हैं कि कोई पता सही है या नहीं.

Geocoding API की मदद से जियोकोडिंग, पतों को भौगोलिक निर्देशांक में बदलने की प्रोसेस है. इसका इस्तेमाल, मैप पर मार्कर या जगह की जानकारी डालने के लिए किया जा सकता है.

पते की पुष्टि करने की सुविधा और जियोकोडिंग एपीआई के बीच के अंतर की खास जानकारी यहां देखी जा सकती है.

पते की पुष्टि करने की सुविधा बनाम जियोकोडिंग एपीआई को कब चुनना चाहिए

Address-Validation-vs-Geocoding

ऊपर दिए गए फ़्लो चार्ट के बारे में जानकारी:

  • उपयोगकर्ता इंटरैक्शन के इस्तेमाल के उदाहरण से पता चलता है कि जब कोई उपयोगकर्ता नतीजों के साथ इंटरैक्ट करने के लिए मौजूद होता है, तब क्या होता है.
  • जगहों के नाम अपने-आप पूरे होने की सुविधा, एक JavaScript API है. इसलिए, यह यूज़र इंटरफ़ेस के साथ इंटिग्रेट करने के लिए सही है.
  • आपको अपने मौजूदा पतों की डेटा क्वालिटी से जुड़ी समस्याओं के बारे में पता हो सकता है. इसलिए, भले ही आपको सिर्फ़ जियोकोड चाहिए, लेकिन डेटासेट को सही करने के लिए, उन जगहों की जानकारी को पता की पुष्टि करने वाले एपीआई के ज़रिए चलाने का सुझाव दिया जाता है.

ऊपर दिए गए डिसीज़न ट्री के आधार पर, कई स्थितियों में किसी एक प्रॉडक्ट के बजाय दूसरे प्रॉडक्ट का इस्तेमाल किया जा सकता है. हालांकि, कुछ मामलों में अपने लक्ष्यों को पूरा करने के लिए, दोनों प्रॉडक्ट का इस्तेमाल किया जा सकता है.

जब इन स्थितियों में से कोई एक स्थिति हो, तब जियोकोडिंग एपीआई के बजाय, पते की पुष्टि करने वाले एपीआई का इस्तेमाल किया जा सकता है:

  • जहां संदिग्ध डेटा मिलने की संभावना ज़्यादा हो या जहां गलत पता मिलने से, डाउनस्ट्रीम पर बुरा असर पड़ेगा. ऐसा इसलिए है, क्योंकि Address Validation API, इस बारे में ज़्यादा जानकारी देता है कि किसी इनपुट को सटीक नतीजा क्यों नहीं मिला.
  • आपको उपयोगकर्ता के इनपुट (जैसे, गलत स्पेलिंग या फ़ील्ड मौजूद न होना) को ठीक करना होगा. इससे, आउटपुट में सटीक नतीजे मिलने की संभावना बढ़ जाती है.
  • आपके टारगेट किए गए इलाके में, पते की पुष्टि करने वाले एपीआई की तुलना में, जियोकोडिंग एपीआई से ज़्यादा मेटाडेटा मिलता है. जैसे, इमारत के टाइप को घर या व्यावसायिक के तौर पर बांटना.

Address Validation API के बजाय, जियोकोडिंग का इस्तेमाल तब किया जा सकता है, जब:

  • आपका मुख्य मकसद किसी पते की जगह की जानकारी हासिल करना है और हो सकता है कि अलग-अलग पतों की सटीक जानकारी ज़रूरी न हो.
    • उदाहरण के लिए, डेटा के बड़े सेट से हीटमैप जनरेट करना.
  • आपको एक ग्लोबल समाधान की ज़रूरत है और पते की पुष्टि करने वाला एपीआई, टारगेट किए गए सभी इलाकों में उपलब्ध नहीं है.

यहां कुछ उदाहरण दिए गए हैं, जिनसे पता चलता है कि Address Validation API की सुविधाएं, Geocoding API की तुलना में कितनी बेहतर हैं.

अमान्य पते का उदाहरण

1 Fake St, Mountain View, CA 94043, USA

Address Validation API, इस इनपुट को पते के अलग-अलग कॉम्पोनेंट (सड़क, शहर, राज्य वगैरह) में बांट देता है. यह PREMISE लेवल तक यह जानकारी भी दे सकता है कि पता अमान्य क्यों है.

फ़ेक स्ट्रीट, माउंटेन व्यू, कैलिफ़ोर्निया में मौजूद नहीं है. साथ ही, एड्रेस की पुष्टि करने वाला एपीआई, कॉम्पोनेंट लेवल की जानकारी में यह जानकारी दिखाता है:

{
  "componentName": {
    "text": "Fake St",
    "languageCode": "en"
   },
   "componentType": "route",
   "confirmationLevel":"UNCONFIRMED_BUT_PLAUSIBLE"
 }

इस मामले में, confirmationLevel की जांच करना ज़रूरी है. Fake St के लिए UNCONFIRMED_BUT_PLAUSIBLE दिखाकर, एपीआई ने यह पता लगाया है कि किसी सड़क का नाम ऐसा हो सकता है. हालांकि, यह पता नहीं लगाया जा सका कि यह नाम, पते के डेटा से मेल खाता है या नहीं.

एपीआई के नतीजे को फ़ीडबैक के तौर पर इस्तेमाल करके, यह पता लगाया जा सकता है कि इस इनपुट (Fake St) के स्ट्रीट कॉम्पोनेंट में गड़बड़ी है.

Geocoding API के साथ उसी पते का इस्तेमाल करके, “कैलिफ़ोर्निया” से मैच किया जा सकता है. जैसा कि आपको जियोकोडिंग टूल के स्क्रीनशॉट में दिख रहा है. इस टूल को यहां आज़माया जा सकता है:

alt_text

हालांकि, इसका नतीजा पूरे राज्य का जियोकोड होता है. साथ ही, इनपुट के किन कॉम्पोनेंट में गड़बड़ी हो सकती है, इस बारे में बहुत कम जानकारी मिलती है.

स्पेलिंग की गड़बड़ी का उदाहरण

76 Buckingamm Palace Road, Londn, SW1W 9TQ, GB

ऊपर दिए गए पते में, स्पेलिंग से जुड़ी कुछ गलतियां हैं. एक गलती, गली के नाम में है और दूसरी गलती, इलाके के नाम में है.

पते की पुष्टि करने की सुविधा और जियोकोडिंग एपीआई, दोनों ही इन गड़बड़ियों को ठीक कर सकते हैं और 76 Buckingham Palace Road, London, SW1W 9TQ का नतीजा दे सकते हैं. हालांकि, पते की पुष्टि करने वाले एपीआई से इस प्रोसेस के बारे में ज़्यादा जानकारी मिल सकती है.

पता डालते समय गलती से लिखे गए किसी एक कॉम्पोनेंट पर नज़र डालें:

{
  "componentName": {
    "text": "Buckingham Palace Road",
    "languageCode": "en"
        },
        "componentType": "route",
        "confirmationLevel": "CONFIRMED",
        "spellCorrected": true
     }
}

Address Validation API, फ़ील्ड में सुधार किए जाने की जानकारी देने के लिए एक फ़्लैग दिखाता है. इस फ़्लैग के ख़िलाफ़ कारोबारी लॉजिक लागू किया जा सकता है, ताकि डेटा देने वाली कंपनी के साथ सुधार की दोबारा जांच की जा सके. जैसे, ई-कॉमर्स चेकआउट में ग्राहक.

डेटा मौजूद न होने और स्पेलिंग की गड़बड़ी का उदाहरण

Bollschestraße 86, 12587, DE

ऊपर दिए गए पते में, गली के नाम की स्पेलिंग में गड़बड़ी है. साथ ही, इसमें शहर (इलाके) का नाम मौजूद नहीं है.

पते की पुष्टि करने वाला एपीआई, इन दोनों गड़बड़ियों को ठीक कर सकता है. साथ ही, यह PREMISE लेवल का जियोकोड और PREMISE लेवल तक पुष्टि किया गया पता दिखाता है:

Bölschestraße 86, 12587 Berlin, DE

इस मामले में, Geocoding API, इनपुट से जुड़ी गड़बड़ियों को ठीक नहीं कर पाता और ZERO_RESULTS का नतीजा दिखाता है.

पते के मेटाडेटा का अन्य उदाहरण

111 8th Avenue Ste 123, New York, NY 10011-5201, US

यह पता सही है. हालांकि, यूनिट नंबर (Ste 123) गलत है. यह बिल्डिंग में मौजूद नहीं है.

Address Validation API, PREMISE (111 8th Ave) के पते की पुष्टि कर सकता है. साथ ही, प्रॉपर्टी के बारे में कुछ मेटाडेटा भी दे सकता है. जैसे, यह एक व्यावसायिक प्रॉपर्टी है

प्राइमिसेज़:

"business": true

इसके अलावा, जवाब में uspsData के हिस्से के तौर पर दिखाई गई dpvConfirmation वैल्यू S है:

"dpvConfirmation": "S"

dpvConfirmation की वैल्यू S होने का मतलब है कि पते की पुष्टि PREMISE लेवल तक की गई है. हालांकि, इनपुट में दिया गया यूनिट नंबर उस पते से जुड़ा नहीं है.

Geocoding API यह जानकारी नहीं दे पा रहा है.

Geocoding API के रिस्पॉन्स को समझना

खास जानकारी

Geocoding API का इस्तेमाल करने पर, जियोकोड के नतीजे में कई तरह की जानकारी होती है. इसका इस्तेमाल, दिए गए पते की जानकारी को समझने के लिए किया जा सकता है.

जियोकोडिंग एपीआई, हैरारकी में पता के कॉम्पोनेंट को हल करके काम करता है.

उदाहरण के लिए, 123 Example Street, Chicago, 60007, USA इस क्रम में हल होता है:

/ Example Street/ Chicago/ 60007/ USA का आकलन उसी क्रम में किया जाएगा. इस मामले में पहला मैच शिकागो है और खास तौर पर, 60007 पिन कोड. इसलिए, यह उस पिन कोड के लिए यह Place_id दिखाता है:

ChIJwRKzf8ixD4gRHiXqucwr_HQ

Geocode API के जवाब में यह जानकारी शामिल होती है:

        "partial_match": true,
           "place_id": "ChIJwRKzf8ixD4gRHiXqucwr_HQ",
           "types": [
               "postal_code"
           ]

Geocoding API यह पुष्टि कर सकता है कि यह पता किस तरह की जगह का है. Geocoding API से मिले पते types की सूची यहां देखी जा सकती है.

अगर इनपुट का कोई भी कॉम्पोनेंट हल नहीं होता है, तो एपीआई यह दिखाता है:

{
   "results": [],
   "status": "ZERO_RESULTS"
}

घर के नंबर के बिना सिर्फ़ सड़क का पता डालकर अनुरोध करने पर, इस फ़ॉर्म में नतीजा मिलता है:

"types": [
  "route"
]

इसका मतलब है कि जियोकोडिंग एपीआई को सड़क का नंबर नहीं मिला या वह नंबर से मेल नहीं खाता.

ध्यान दें: यह जानने के लिए कि कोई पता मौजूद है या नहीं, देखें कि Geocoding API के जवाब में कोई पैरामीटर (जैसे, types, partial_match, results, status)) सेट है या नहीं. इससे, यह पता चलने की संभावना धीरे-धीरे बढ़ जाएगी कि कोई पता मौजूद है. हालांकि, इससे यह 100% सटीक नहीं होगा. इसलिए, हमें Address Validation API की ज़रूरत है.

ऊपर बताई गई तकनीकों का इस्तेमाल करके, सिर्फ़ Geocoding API के जवाब से पता चलने वाले पते की सटीकता का पता लगाया जा सकता है. हालांकि, पते की पुष्टि करने वाले एपीआई के नतीजे के उलट, जियोकोडिंग एपीआई नतीजे की सटीक जानकारी नहीं देगा.

लोकेशन किस तरह की है

इस सेक्शन को सही तरीके से समझने के लिए, आपको Geocoding API के रिस्पॉन्स से मिलने वाली अलग-अलग जगहों के टाइप के बारे में जानना होगा:

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

अगर कोई जियोकोडिंग एपीआई, ROOFTOP या RANGE_INTERPOLATED का location_type दिखाता है, तो इसका मतलब यह नहीं है कि वह पता मौजूद है. इसी तरह, अगर कोई जियोकोडिंग एपीआई partial_match फ़्लैग को true पर सेट करके नतीजा दिखाता है, तो भी यह आपके लिए सही नतीजा हो सकता है.

इस तरह की गलत मैचिंग को Geocoding API की मदद से हल करना बहुत मुश्किल है. कम से कम, अनुरोध / जवाब के देश और इलाके के लिए, प्रोसेसिंग के बाद की जाने वाली कुछ बुनियादी पुष्टि लागू की जा सकती है. इससे भी बेहतर, गलत स्पेलिंग और/या अधूरे पते के लिए, मोहल्ले के असली पतों की तुलना करें.

ध्यान दें: अगर आपको Geocoding API का इस्तेमाल करना है, तो हमारा सुझाव है कि आप शुरुआती अनुरोध और Geocoding API के जवाब के बीच, डेटा क्वालिटी की नियमित तौर पर जांच करें.

कुछ हद तक मैच होना और गलत मैच होना

अगर कोई पता कुछ हद तक मैच होता है, तो इसका मतलब है कि Geocoding API, पते की सटीक पहचान नहीं कर सका. ऐसे में, जवाब में ये चीज़ें शामिल होती हैं:

"partial_match": true,
"types": [
           "locality",
           "political"
         ]

ऊपर बताए गए लोकेशन टाइप के अलावा, यह भी ध्यान रखना ज़रूरी है कि जवाब में partial_match = true कब मौजूद है. partial_match से पता चलता है कि Geocoding API ने मूल अनुरोध के लिए, एग्ज़ैक्ट मैच नहीं दिया. हालांकि, वह अनुरोध किए गए पते के कुछ हिस्से से मैच कर पाया.

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

उदाहरण के लिए, "21 Henr St, Bristol, UK", हेनरी स्ट्रीट और हेनरीटा स्ट्रीट, दोनों के लिए कुछ हद तक मैच करता है. ध्यान दें कि अगर किसी अनुरोध में पते के किसी कॉम्पोनेंट को गलत तरीके से लिखा गया है, तो Geocoding API कोई दूसरा पता सुझा सकता है. इस तरह से ट्रिगर किए गए सुझावों को, 'कुछ हद तक मैच' के तौर पर मार्क नहीं किया जाएगा.

सिंथेटिक पते

Geocoding API, "सिंथेटिक" पतों की जगहें दिखा सकता है. ये पते, Google के डेटाबेस में सटीक जगहों के तौर पर मौजूद नहीं होते.

ऐसे मामलों में, रिस्पॉन्स ऑब्जेक्ट में अक्सर एक लंबा प्लेस आईडी और यह प्रॉपर्टी होती है: geometry.location_type=APPROXIMATE.

अगर आपको जवाब में ये इंडिकेटर दिखते हैं, तो कृपया इनपुट किए गए पते को अमान्य के तौर पर मार्क करें और किसी दूसरे तरीके से उसकी फिर से पुष्टि करें.

ध्यान दें: यह एक और उदाहरण है, जिसमें Address Validation API की मदद से, किसी पते के मौजूद न होने पर आपको सीधे फ़ीडबैक मिलता है.

Address Validation API के रिस्पॉन्स को समझना

पते की पुष्टि करने वाले एपीआई से मिलने वाले जवाबों को समझने के बारे में पहले से ही बहुत अच्छे दस्तावेज़ मौजूद हैं. इसलिए, हम यहां ज़्यादा जानकारी नहीं देंगे.

सबसे सही तरीके

देश या इलाके की जानकारी देना

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

  • Geocoding API - क्षेत्र के हिसाब से जानकारी

    अगर आपको पता है कि जियोकोड किसी देश के अंदर के होंगे, तो क्षेत्र के हिसाब से प्राथमिकता का इस्तेमाल करके, आपको बेहतर नतीजे मिलेंगे. उदाहरण के लिए, अगर कनाडा में जियोकोडिंग की जा रही है, तो हमारा सुझाव है कि आप अपने अनुरोधों में &region=ca जोड़ें, ताकि कनाडा को प्राथमिकता दी जा सके. कृपया ध्यान दें कि क्षेत्र के हिसाब से नतीजे दिखाने की सुविधा, सिर्फ़ उस क्षेत्र के नतीजों को प्राथमिकता देती है. हालांकि, आपको अब भी उस देश/इलाके से बाहर के नतीजे मिल सकते हैं.

  • पते की पुष्टि करने वाला एपीआई - क्षेत्र का कोड

    इसी तरह, अगर अनुरोध में regionCode फ़ील्ड का इस्तेमाल करके ISO2 कोड पास किया जाता है, तो पते की पुष्टि करने वाला एपीआई ज़्यादा सटीक नतीजे दिखाता है.

जगह के आईडी सेव करना

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

यह पक्का करने के लिए कि आपके पास हमेशा अप-टू-डेट जानकारी हो, place_id पैरामीटर के साथ जगह की जानकारी का अनुरोध करके, हर 12 महीने में जगह के आईडी रीफ़्रेश करें.

ध्यान दें: कृपया जियोकोडिंग के लिए, सबसे सही तरीकों की गाइड भी देखें.

नतीजा

इस दस्तावेज़ में, पते की पुष्टि करने वाले और जियोकोडिंग एपीआई के बीच के मुख्य अंतर के बारे में बताया गया है. खास जानकारी के तौर पर, Address Validation API का इस्तेमाल तब करें, जब:

  • सही मेलिंग पता देना ज़रूरी है, खास तौर पर डिलीवरी के लिए.
  • इनपुट डेटा की क्वालिटी खराब है. Address Validation API, इनपुट से जुड़ी गड़बड़ियों को आसानी से माफ़ कर देता है. साथ ही, पते के ऐसे कॉम्पोनेंट को हाइलाइट करेगा जिनकी पुष्टि नहीं की जा सकती. इसके अलावा, यह इनपुट डेटा में सुधार भी करेगा.
  • पते के लिए ज़्यादा जानकारी ज़रूरी है. जैसे, घर या ऑफ़िस (यह सुविधा चुनिंदा इलाकों में उपलब्ध है).

अगले चरण

भरोसेमंद पतों की मदद से चेकआउट, डिलीवरी, और ऑपरेशंस को बेहतर बनाएं व्हाइट पेपर डाउनलोड करें. साथ ही, पते की पुष्टि करने की सुविधा की मदद से चेकआउट, डिलीवरी, और ऑपरेशंस को बेहतर बनाना वेबिनार देखें.

इस बारे में और जानने के लिए, ये लेख पढ़ें:

योगदानकर्ता

इस लेख को Google मैनेज करता है. इसे मूल रूप से इन लोगों ने लिखा था.

मुख्य लेखक:

हेनरिक वाल्व | सलूशन इंजीनियर

थॉमस ऐंगलरेट | सलूशन इंजीनियर

सार्थक गांगुली | सलूशन इंजीनियर