我正在使用Google地理编码API开发地址匹配应用程序。 问题是我试图验证的数据库中的一些地址是这样的:
ATTN:THOMAS WONG先生2457 Yonge St.,Toronto,ON,N2S 2V5,Canada
而不是
2457 Yonge St.,Toronto,ON,N2S 2V5,Canada
第一个字符串返回null结果(因为它以人名开头),第二个字符串将验证并返回完整正确的地址。
我的问题是:这个问题的正确方法是什么? 我在想一种从地址字符串中提取相关部分的方法(有一些功能),但也许有更好的想法?
谢谢你, M.R。
答案 0 :(得分:1)
如果地址的所需部分始终以数字开头,请尝试以下操作:
为了解析地址,您需要了解所有可能的格式。
您需要包括:
对于全面的地址解析解决方案,您需要为不同的地址格式提供多种算法,然后根据输入确定要使用的算法。
答案 1 :(得分:1)
我在SmartyStreets工作并使用LiveAddress API编写the address extractor which we now offer。这个很难(硬。你需要强迫自己不要做很多假设,包括“如果地址以数字开头”。 (对不起DwB - 需要考虑很多。)
如果你有美国地址,你仍然可以发现我们的工具很有用(它可以免费注册和使用)。这是关于提取实用程序的另一个Stack Overflow帖子:https://stackoverflow.com/a/16448034/1048862
执行此操作的最佳方法是使用地址验证服务 - 可以验证交付点而不仅仅是地址范围(这是最常见的,因此要谨慎对待“地址验证”,当它真的只是在某些范围内猜测。)
请注意,Google不会验证地址。它可以标准化它们,并且如果地址 存在则返回结果,如果它是真实的,如果它实际上是有效的,那就是你的幸运日。