遇到的问题
通过身份证的住址,拿到该地址的区域编码,刚开始的想法是,直接去取身份证前 6 位,就用来当作区域编码了,但是遇到很多问题:
- 取到的区域编码已经没有再使用了,在最新的行政编码里找不到. 比如512529 原本属于
四川省江安县, 但是现在已经没有这个编号了,已经改成了511523 四川省江安县(宜宾下辖)` - 身份证住址以及更换了,但是身份证号不会变, 这样也会导致直接取身份证前 6 位是不准确的。
尝试
各大互联网公司的地址解析服务:
- 腾讯的( https://lbs.qq.com/webservice_v1/guide-geocoder.html), 结果里并没提供区域编码
- 高德的( https://lbs.amap.com/api/webservice/guide/api/georegeo), 虽然有提供数据接口,但是好像并不准确,比如下图
浙江省富阳市场口镇鸿率村 xxx 号, 是直接取自身份证上, 使用高德接口解析,解析成了 杭州市 , 并且返回的 adcode 并不准确。
如何解析
尝试自己去做匹配,但是这个身份证地址的规则实在有点复杂,就遇到的就有:
- 四川省宜宾县
- 四川省泸州市龙马潭区
- 湖北省钟祥市东桥镇
- 西安市未央区
不知道是否还可能会规则,该如何去匹配?

查了一下,富阳市的确与 2015 年 2 月划成杭州市了,改为富阳区。是我无知了。在比较新的行政规划编号里,的确是有 330111 这个 adcode