经过月GMV过亿项目考验过的方案
匹配场景:基于百度地图、高低地图获取的区划地址与地区表名称匹配
目录
构建一个地址匹配和补全的流程(基于名称的匹配和基于坐标的匹配):
1. 基于名称的匹配步骤一: 优先使用省、市、区县名称进行匹配。
2. 基于坐标的匹配步骤二: 如果基于名称的匹配失败,则使用坐标进行匹配。
3. 地址补全逻辑步骤三: 如果基于坐标的匹配后三级地址中仍有缺失,则进行补全。
行政区划体系层级
- 第一级:省
- 第二集:地级市、自治州
- 第三级:县市区(县级市)
- 第四级:乡镇街
组装一个三级地址流程:
1. 优先使用省、市、区县名称进行匹配
输入:省、市、区县名称。
操作:省、市、区县分别查询Area地区表,尝试匹配这些名称到对应的地区明细。
结果:
如果三级地区(省、市、区县)都成功匹配到,则正常编辑地区,流程结束。
如果有一级或多级地区没有匹配到,使用坐标匹配。
2. 使用坐标进行匹配
输入:坐标点(经纬度)。
操作:
调用高德地图的地址解析API,获取该坐标点对应的省、市、区县、街道/乡镇。
将解析出的地址与Area地区表进行匹配。
结果:
如果成功匹配到地区ID,则使用该ID进行地区编辑。
如果匹配失败,则进入补全逻辑。
报警机制:如果基于坐标的匹配失败,触发报警机制。
3. 区划名称匹配Area逻辑
在地区(区划名称)匹配Area地区表过程中,需要删除行政单位,按照层级货上级ID,依次like匹配Area表area_name、alias_1、alias_2,获取区划信息(为匹配到)。