هدف
شما اغلب نیاز به اعتبارسنجی موقعیت مکانی یک مکان دارید. چند سرویس مختلف در پلتفرم نقشه های گوگل وجود دارد که می توانند در این مورد به شما کمک کنند. این سند به شما کمک میکند بین دو سرویس اعتبارسنجی موقعیت مکانی اصلی - Address Validation API و Geocoding API انتخاب کنید.
Address Validation API پیشنهادی از پلتفرم Google Maps است که به مشتریان کمک میکند تا درستی یا نبودن یک آدرس را تأیید کنند.
Geocoding با Geocoding API فرآیند تبدیل آدرس ها به مختصات جغرافیایی است که می توانید از آن برای قرار دادن نشانگرها روی نقشه یا موقعیتی روی نقشه استفاده کنید.
یک نمای کلی از تفاوتهای بین اعتبار سنجی آدرس و API کدگذاری جغرافیایی را میتوانید در اینجا پیدا کنید.
زمان انتخاب Address Validation vs Geocoding API
نکاتی در مورد نمودار جریان بالا:
- مورد استفاده تعامل کاربر به زمانی اشاره دارد که کاربر برای تعامل با نتایج حضور دارد.
- Places Autocomplete یک API جاوا اسکریپت است که برای ادغام با رابط کاربری مناسب است.
- ممکن است از مشکلات کیفیت داده در آدرسهای موجود خود آگاه باشید. بنابراین اگرچه ممکن است فقط ژئوکدها را بخواهید، اما توصیه میشود آن مکانها را از طریق Address Validation API اجرا کنید تا مجموعه دادهها را تصحیح کنید.
موقعیت های زیادی وجود دارد که ممکن است بر اساس درخت تصمیم بالا، از یک محصول بر دیگری استفاده کنید. اما شرایط دیگر ممکن است شامل استفاده از هر دو محصول برای رسیدن به اهداف شما باشد.
ممکن است زمانی که:
- احتمال زیاد دادههای مشکوک وجود دارد، یا اینکه دریافت آدرس نادرست تأثیر منفی در پاییندستی خواهد داشت. دلیل آن این است که Address Validation API بازخورد بیشتری در مورد اینکه چرا یک ورودی نتیجه دقیق بالایی دریافت نکرده است، ارائه می دهد.
- شما باید ورودی های کاربر را تصحیح کنید (مثلاً غلط املایی یا فیلدهای از دست رفته)، که احتمال نتیجه دقیق در خروجی را افزایش می دهد.
- منطقه هدف شما ابرداده بیشتری را از Address Validation API در مقایسه با Geocoding API برمی گرداند، مانند طبقه بندی نوع ساختمان به عنوان مسکونی در مقابل تجاری.
ممکن است استفاده از Geocoding را به جای Address Validation API زمانی که:
- هدف اصلی شما بازیابی موقعیت مکانی یک آدرس است و دقت آدرسهای فردی ممکن است مهم نباشد.
- به عنوان مثال، برای ایجاد یک نقشه حرارتی از مجموعه بزرگی از داده ها.
- شما به یک راه حل جهانی نیاز دارید و Address Validation API در همه مناطق هدف در دسترس نیست.
در زیر چند نمونه وجود دارد که قابلیتهای Address Validation API را در مقایسه با Geocoding API نشان میدهد.
مثال آدرس نامعتبر
1 Fake St, Mountain View, CA 94043, USA
Address Validation API این ورودی را به اجزای آدرس جداگانه خود (خیابان، شهر، ایالت و غیره) تقسیم می کند. همچنین میتواند در مورد اینکه چرا آدرس تا سطح PREMISE
معتبر نیست، بازخورد دقیق ارائه دهد.
Fake St در Mountain View، CA وجود ندارد و Address Validation API این را در جزئیات سطح مؤلفه برگشتی نشان میدهد:
{
"componentName": {
"text": "Fake St",
"languageCode": "en"
},
"componentType": "route",
"confirmationLevel":"UNCONFIRMED_BUT_PLAUSIBLE"
}
ویژگی مهمی که در این مورد باید بررسی شود، confirmationLevel
است. با برگرداندن UNCONFIRMED_BUT_PLAUSIBLE
در مقابل Fake St، API مشخص کرده است که ممکن است خیابانی آن را به عنوان نام داشته باشد، اما نمیتواند با دادههای آدرس پشتیبانی مطابقت داده شود.
با استفاده از نتیجه API به عنوان بازخورد، می توان نتیجه گرفت که مولفه خیابانی این ورودی (Fake St) اشتباه است.
با استفاده از همان آدرس با Geocoding API، میتواند در «کالیفرنیا» مطابقت داشته باشد، همانطور که در تصویر از ابزار geocoding میبینید که میتوانید در اینجا امتحان کنید:
با این حال، نتیجه یک ژئوکد از کل حالت است، با حداقل بازخورد در مورد اینکه کدام مؤلفه های ورودی به طور بالقوه معیوب هستند.
مثال خطای املایی
76 Buckingamm Palace Road, London , SW1W 9TQ, GB
آدرس بالا حاوی چند اشتباه املایی است، یکی در نام خیابان و دیگری در محل.
هم Address Validation و هم Geocoding API قادر به تصحیح این اشتباهات هستند و به نتیجه 76 Buckingham Palace Road, London, SW1W 9TQ می رسند. با این حال، Address Validation API میتواند اطلاعات بیشتری در مورد فرآیند ارائه دهد.
به یکی از اجزای آدرس که در ورودی اشتباه نوشته شده است نگاه کنید:
{
"componentName": {
"text": "Buckingham Palace Road",
"languageCode": "en"
},
"componentType": "route",
"confirmationLevel": "CONFIRMED",
"spellCorrected": true
}
}
Address Validation API یک پرچم را برمی گرداند تا نشان دهد که اصلاحی در فیلد انجام شده است. منطق کسبوکار را میتوان در برابر این پرچم پیادهسازی کرد تا اصلاحات را با ارائهدهنده دادهها، مانند مشتری در تسویهحساب تجارت الکترونیک، دوباره بررسی کند.
داده های از دست رفته و مثال خطای املایی
Bollschestraße 86, 12587, DE
آدرس فوق دارای یک خطای املایی در نام خیابان است و شهر (محل) برلین را ندارد.
Address Validation API قادر است هر دوی این خطاها را برطرف کند و یک ژئوکد سطح PREMISE
و آدرسی که در سطح PREMISE
تأیید شده است را برمی گرداند:
Bölschestraße 86, 12587 Berlin, DE
API Geocoding قادر به غلبه بر خطاهای ورودی در این مورد نیست و نتیجه ZERO_RESULTS
را برمی گرداند.
نمونه فراداده آدرس اضافی
111 8th Avenue Ste 123 , New York, NY 10011-5201, US
این آدرس صحیح است به جز شماره واحد (Ste 123) که در داخل ساختمان وجود ندارد.
Address Validation API میتواند آدرس PREMISE
(خیابان 8th 111) را تأیید کند، و برخی فرادادهها را در مورد این دارایی از جمله تجاری بودن آن ارائه دهد.
محل:
"business": true
علاوه بر این، مقدار dpvConfirmation
که به عنوان بخشی از uspsData
در پاسخ بازگردانده می شود S
است:
"dpvConfirmation": "S"
مقدار dpvConfirmation
از S
نشان می دهد که آدرس تا سطح PREMISE
تایید شده است، اما شماره واحد ارائه شده در ورودی با آن آدرس مرتبط نیست.
Geocoding API قادر به ارائه این اطلاعات نیست.
درک پاسخ API Geocoding
نمای کلی
اگر از Geocoding API استفاده می کنید، نتیجه ژئوکد حاوی سرنخ های مختلفی در پاسخ است که می تواند برای درک جزئیات آدرس ارائه شده استفاده شود.
نحوه عملکرد API Geocoding با حل اجزای آدرس در یک سلسله مراتب است.
برای مثال، 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"
]
API Geocoding میتواند تأیید کند که این آدرس به چه مکانی تعلق دارد. فهرستی از types
آدرس های بازگردانده شده توسط Geocoding API را می توانید در اینجا بیابید.
اگر هیچ یک از اجزای ورودی حل نشود، API برمیگرداند:
{
"results": [],
"status": "ZERO_RESULTS"
}
درخواست فقط با آدرس خیابان بدون شماره خانه نتیجه را به شکل زیر برمی گرداند:
"types": [
"route"
]
این بدان معناست که API Geocoding نمی تواند یک شماره خیابان را بیابد یا مطابقت دهد.
توجه: برای اطلاع از وجود آدرس، بررسی کنید که آیا هر یک از پارامترها (مانند types
، partial_match, results, status)
در پاسخ API Geocoding تنظیم شده است یا خیر. این به تدریج سطح اطمینان از وجود یک آدرس را افزایش می دهد، اما آن را 100٪ دقیق نمی کند. به همین دلیل ما به Address Validation API نیاز داریم.
میتوانید از تکنیکهای بالا برای افزایش اطمینان در دقت آدرس از پاسخ API Geocoding به تنهایی استفاده کنید. با این حال، برخلاف نتیجه Address Validation API، Geocoding API بازخورد دقیقی برای تعیین صحت نتیجه بر نمیگرداند.
نوع مکان
برای درک صحیح این بخش، باید انواع مکان های مختلف را که می توان از پاسخ API Geocoding برگرداند، بدانید:
- ROOFTOP نشان می دهد که نتیجه برگردانده شده یک ژئوکد دقیق است که ما اطلاعات موقعیت مکانی را با دقت آدرس خیابان داریم.
- RANGE_INTERPOLATED نشان می دهد که نتیجه برگشتی یک تقریب (معمولاً در یک جاده) را منعکس می کند که بین دو نقطه دقیق (مانند تقاطع ها) درون یابی شده است. نتایج درون یابی عموماً زمانی که ژئوکدهای روی پشت بام برای یک آدرس خیابان در دسترس نباشند، برمی گردند.
- GEOMETRIC_CENTER نشان می دهد که نتیجه برگشتی مرکز هندسی نتیجه ای مانند چند خط (مثلاً یک خیابان) یا چندضلعی (منطقه) است.
- APPROXIMATE نشان می دهد که نتیجه برگشتی هیچ یک از موارد بالا نیست.
اگر یک API Geocoding یک location_type
از ROOFTOP
یا RANGE_INTERPOLATED
را برمی گرداند، لزوماً به این معنی نیست که آدرس وجود دارد. به طور مشابه، اگر یک API Geocoding با پرچم partial_match
روی true
برگردد، ممکن است همچنان نتیجه مناسبی برای شما باشد.
حل این نوع تطبیق کاذب با Geocoding API یک مشکل بسیار دشوار است. حداقل، ممکن است برخی از اعتبارسنجی پس پردازش اولیه را در کشور و محل درخواست / پاسخ در نظر بگیرید. حتی بهتر از آن، به دنبال مقایسه آدرسهای واقعی خیابان برای املای غلط و/یا آدرس ناقص باشید.
توجه : اگر تصمیم به استفاده از Geocoding API دارید، توصیه میشود که بررسی کیفیت دادهها را بین درخواست اولیه و پاسخ Geocoding API به طور منظم انجام دهید.
تطبیق جزئی و تطبیق کاذب
اگر یک آدرس یک تطابق جزئی باشد، به این معنی که API Geocoding نمی تواند دقیقاً آدرس را شناسایی کند، پاسخ شامل موارد زیر است:
"partial_match": true,
"types": [
"locality",
"political"
]
حتی مهمتر از انواع مکانهای بالا این است که در نظر بگیرید partial_match = true
است در پاسخ partial_match
نشان میدهد که API Geocoding مطابقت دقیقی با درخواست اصلی نشان نداده است، اگرچه میتواند بخشی از آدرس درخواستی را مطابقت دهد.
ممکن است بخواهید درخواست اصلی برای آدرس ناقص را بررسی کنید. تطابق جزئی اغلب برای آدرسهای خیابانی رخ میدهد که در محل مشخصشده در درخواست وجود ندارند. زمانی که درخواستی با دو یا چند مکان در همان محل مطابقت داشته باشد، مسابقات جزئی نیز ممکن است برگردانده شوند.
برای مثال، « 21 Henr St, Bristol, UK
» یک مسابقه جزئی را برای خیابان هنری و خیابان هنریتا برمیگرداند. توجه داشته باشید که اگر یک درخواست شامل یک جزء آدرس غلط املایی باشد، API Geocoding ممکن است یک آدرس جایگزین را پیشنهاد کند. پیشنهادهایی که از این طریق ارائه میشوند بهعنوان تطابق جزئی علامتگذاری نمیشوند.
آدرس های مصنوعی
API Geocoding ممکن است مکانهایی را برای آدرسهای مصنوعی که به عنوان مکانهای دقیق در پایگاه داده Google وجود ندارند، بازگرداند.
در چنین سناریوهایی، شی پاسخ اغلب حاوی یک شناسه مکان طولانی و ویژگی زیر است: geometry.location_type=APPROXIMATE
.
اگر در پاسخ با این شاخصها مواجه شدید، لطفاً آدرس ورودی را بهعنوان نامعتبر علامتگذاری کنید و سعی کنید دوباره آن را با روش دیگری تأیید کنید.
توجه : این مثال دیگری است که در آن با Address Validation API، اگر آدرسی وجود نداشته باشد، بازخورد مستقیم دریافت می کنید.
درک پاسخ API اعتبار سنجی آدرس
در حال حاضر اسناد بسیار خوبی در مورد چگونگی درک پاسخها از Address Validation API وجود دارد، بنابراین در اینجا به جزئیات بیشتر نمیپردازیم.
- نمای کلی شی پاسخ را می توان در اینجا یافت.
- نسخه ی نمایشی که اجزای مختلف پاسخ را نشان می دهد در اینجا است
- در سند اعتبار سنجی آدرس برای پرداخت توضیحات مفصلی در مورد نحوه تمایز بین آدرس های خوب و بد وجود دارد.
بهترین شیوه ها
تعیین جغرافیا
هنگام برقراری تماس با Address Validation یا Geocoding API، بهترین کار این است که سعی کنید جغرافیای جستجوی آن آدرس را محدود کنید. دو API این را به دو روش مختلف پیاده سازی می کنند:
Geocoding API - ناحیه بایاس
اگر میدانید که ژئوکدها در یک کشور خاص قرار خواهند گرفت، با استفاده از منطقه بایاس نتایج بسیار بهتری دریافت خواهید کرد. به عنوان مثال، اگر در کانادا در حال کدگذاری جغرافیایی هستید، توصیه می کنیم
®ion=ca
را به درخواست های خود برای سوگیری نسبت به کانادا اضافه کنید. لطفاً توجه داشته باشید که منطقه بایاس تنها نتایج را در آن منطقه ترجیح می دهد . شما هنوز هم می توانید در خارج از منطقه نتیجه بگیرید.Address Validation API - کد منطقه
به روشی مشابه، Address Validation API در صورت ارسال کد ISO2 در درخواست، با استفاده از فیلد
regionCode
، نتایج دقیقتری تولید میکند.
ذخیره سازی شناسه مکان
برای ذخیره اطلاعات از پلتفرم نقشه های گوگل در مورد مکان برای درخواست های بعدی، می توانید شناسه مکان را به طور نامحدود در پایگاه داده خود به عنوان ویژگی مکان ذخیره کنید . شما فقط باید یک بار در هر شناسه مکان، درخواست Find Place را ارسال کنید. همچنین می توانید هر بار که کاربر جزئیات تراکنش را درخواست می کند، شناسه مکان را جستجو کنید.
برای اطمینان از اینکه همیشه بهروزترین اطلاعات را دارید، شناسههای مکان را هر 12 ماه با استفاده از درخواست جزئیات مکان با پارامتر place_id
بازخوانی کنید.
توجه : لطفاً حتماً راهنمای بهترین روشها برای Geocoding را نیز مرور کنید.
نتیجه گیری
این سند تفاوت های اصلی بین API های اعتبار سنجی آدرس و کدگذاری جغرافیایی را شرح می دهد. به طور خلاصه، استفاده از Address Validation API را در زمانی که:
- یک آدرس پستی دقیق مورد نیاز است، به خصوص برای اهداف قابل تحویل.
- داده های ورودی به عنوان کیفیت پایین شناخته شده است. Address Validation API خطاهای ورودی را بیشتر می بخشد، اجزای آدرس غیرقابل تأیید را برجسته می کند و داده های ورودی را اصلاح می کند.
- اطلاعات بیشتری برای آدرس مورد نیاز است، مانند Residential vs Commercial (در مناطق منتخب موجود است).
مراحل بعدی
وایت پیپر بهبود پرداخت، تحویل و عملیات با آدرسهای قابل اعتماد را دانلود کنید و با وبینار اعتبارسنجی آدرس بهبود پرداخت، تحویل و عملیات را مشاهده کنید.
پیشنهاد مطالعه بیشتر:
- اعتبار سنجی آدرس برای تسویه حساب تجارت الکترونیک
- اسناد تکمیل خودکار را قرار دهید
- Address Validation API Documentation
- گزارش پلت فرم نقشه های گوگل
مشارکت کنندگان
گوگل این مقاله را حفظ می کند. مشارکت کنندگان زیر در ابتدا آن را نوشتند.
نویسندگان اصلی:
Henrik Valve | مهندس راه حل
توماس آنگلرت | مهندس راه حل
سرتاک گنگولی | مهندس راه حل