如何做全球的地址校验呢?

2025 年 8 月 15 日
 guoyblala

我们的业务是一个物流系统,我们需要对用户输入的地址进行校验合法性,目前对接的是谷歌的 maps.googleapis.com 接口,但是这个接口对小国家的支持性很差,至少 100 多个国家是不支持的,而我们业务目前是全球的,但优点是特别快,300ms 就能返回结果。 有大佬做过这种全球地址校验么?想咨询一下 下面是我的请求例子


curl --location --request GET 'https://maps.googleapis.com/maps/api/geocode/json?address=3659200,ISRAEL&key=xxxxx' \
--header 'User-Agent: Apifox/1.0.0 ( https://apifox.com)' \
--header 'Accept: */*' \
--header 'Host: maps.googleapis.com' \
--header 'Connection: keep-alive'

{
   "results": [
      {
         "address_components": [
            {
               "long_name": "Israel",
               "short_name": "IL",
               "types": [
                  "country",
                  "political"
               ]
            }
         ],
         "formatted_address": "Israel",
         "geometry": {
            "bounds": {
               "northeast": {
                  "lat": 33.33280500000001,
                  "lng": 35.896244
               },
               "southwest": {
                  "lat": 29.47969999999999,
                  "lng": 34.2673436
               }
            },
            "location": {
               "lat": 31.046051,
               "lng": 34.851612
            },
            "location_type": "APPROXIMATE",
            "viewport": {
               "northeast": {
                  "lat": 33.33280500000001,
                  "lng": 35.896244
               },
               "southwest": {
                  "lat": 29.47969999999999,
                  "lng": 34.2673436
               }
            }
         },
         "partial_match": true,
         "place_id": "ChIJi8mnMiRJABURuiw1EyBCa2o",
         "types": [
            "country",
            "political"
         ]
      }
   ],
   "status": "OK"
}
2739 次点击
所在节点    程序员
7 条回复
ratazzi
2025 年 8 月 15 日
全球做不到的,也就能验证个邮编
Google 也有地址验证 api ,但好像也就美国数据比较好,其实就是 USPS 的

如果自己做到话
加拿大,澳大利亚也有数据
欧洲也就 德国适合,英国验证个邮编也就行了
还有些国家邮编都没有

结论是做这个比做整个物流系统都复杂,更不可能做全球,还会遇到大量文字的坑
clarkethan
2025 年 8 月 15 日
我之前做了一个自用,基于 osm 和其他可以拿到的数据源,自己清洗提取,只能说,勉强能用,小点的国家,错误率很高,每周自动更新一次数据,更新数据的负担也不小
guoyblala
2025 年 8 月 15 日
@ratazzi 我现在接的这个谷歌 api ,大的国家数据都还可以,能通过 45 个,但剩下的 102 个小国家都不太行,以色列都不行。头疼
guoyblala
2025 年 8 月 15 日
@ratazzi 我其实就是想验证个邮编,但像以色列的邮编都无法验证过去
ratazzi
2025 年 8 月 15 日
做这个其实没人买账的,投入太大,实际下单的数据其实很糟糕的,客户下单频繁报错会骂人的,没人会为了能拦截几个错误地址买单
daxiongz
2025 年 8 月 15 日
手机号/邮箱这些更重要吧,可以联系到用户,地址错了就错了吧 ,还有手抖写错的
guoyblala
2025 年 8 月 19 日
@daxiongz 不行的,物流公司联系不到人,就会退回包裹,这个退回的费用,需要我们自己承担

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1152599

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX