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

मकसद

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

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

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

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

Address Validation API और Geocoding API में से किसका इस्तेमाल कब करना चाहिए

Address-Validation-vs-Geocoding

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

  • उपयोगकर्ता इंटरैक्शन के इस्तेमाल के उदाहरण से पता चलता है कि नतीजों के साथ इंटरैक्ट करने के लिए, उपयोगकर्ता कब मौजूद होता है.
  • जगहों के नाम के शुरुआती अक्षर लिखने पर पूरा नाम सुझाने की सुविधा, एक JavaScript API है. इसलिए, यह यूज़र इंटरफ़ेस के साथ इंटिग्रेट करने के लिए सही है.
  • आपको अपने मौजूदा पतों में डेटा क्वालिटी से जुड़ी समस्याओं के बारे में पता हो सकता है. इसलिए, भले ही आपको सिर्फ़ जियोकोड चाहिए, लेकिन डेटासेट को ठीक करने के लिए, हमारा सुझाव है कि आप उन जगहों को Address Validation 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) के स्ट्रीट कॉम्पोनेंट में गड़बड़ी है.

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

alt_text

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

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

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

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

पते की पुष्टि करने और जियोकोडिंग एपीआई, दोनों ही इन गड़बड़ियों को ठीक कर सकते हैं और 76 बकिंघम पैलेस रोड, लंदन, 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 से यह पुष्टि की जा सकती है कि यह पता किस तरह की जगह का है. जियोकोडिंग एपीआई से मिले पते types की सूची यहां देखी जा सकती है.

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

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

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

"types": [
  "route"
]

इसका मतलब है कि Geocoding API को कोई गली नंबर नहीं मिला या वह किसी गली नंबर से मैच नहीं कर सका.

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

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

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

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

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

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

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

ध्यान दें: अगर आपको 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 किसी दूसरे पते का सुझाव दे सकता है. इस तरह से ट्रिगर किए गए सुझावों को, 'कुछ हद तक मैच' के तौर पर मार्क नहीं किया जाएगा.

सिंथेटिक पते

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

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

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

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

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

Address Validation API से मिले रिस्पॉन्स को समझने के बारे में पहले से ही बेहतर दस्तावेज़ मौजूद हैं. इसलिए, हम यहां ज़्यादा जानकारी नहीं देंगे.

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

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

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

  • Geocoding API - किसी इलाके के हिसाब से जानकारी

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

  • Address Validation API - क्षेत्र का कोड

    इसी तरह, Address Validation API ज़्यादा सटीक नतीजे तब दिखाता है, जब अनुरोध में regionCode फ़ील्ड का इस्तेमाल करके ISO2 कोड पास किया जाता है.

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

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

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

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

नतीजा

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

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

अगले चरण

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

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

योगदानकर्ता

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

मुख्य लेखक:

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

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

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