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

मकसद

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

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

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

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

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 का इस्तेमाल किया जाता है, तो जियोकोड के नतीजे में जवाब में कई संकेत शामिल होते हैं. इनका इस्तेमाल, दिए गए पते की जानकारी को समझने के लिए किया जा सकता है.

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 की ज़रूरत है.

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

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

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

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

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

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

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

कुछ हद तक मिलता-जुलता और गलत मैच

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

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

भूगोल तय करना

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

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

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

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

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

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

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

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

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

नतीजा

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

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

अगले चरण

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

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

योगदानकर्ता

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

मुख्य लेखक:

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

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

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