请问大家给定一个地址如何能拆分出单独分开的省市区行政区划,想了一天没什么思路

求助各位前辈: 如果长地址为 天津市和平区南京路 xxxx

如何能通过不用人工干预的手段处理成: 天津市;和平区;南京路;这种行政区划呢?

因为输入有不确定性,比如“省”,“市”,“区”的缺失,或者比较奇葩的地名街道,

感谢大家,提供思路,谢谢,

阅读 9.6k
2 个回答

因为用户输入的内容,不确定性太大,现在都建议使用选择的方式输入到行政区,最后一小段地址才是用户输入的.
从模糊数据里找出详细地址是很复杂的,比如我不输入省份城市,只输入行政区你怎么搞?当然还是有办法,因为有人实现了,比如高德地图.
但是这么做成本太高了,远远大于让用户选择输入的成本.

clipboard.png
比较偏门的方法.
高德地图的地址编码可以模糊搜索,返回格式化的地址.
http://lbs.amap.com/api/webse...

当然可以啦。
一个典型的数据库如下(结构是对的,数据是随手打的。这样的库网上很多)

6位行政区划代码 区划名称(省就是省名字,市就是市名字,区类似) 上级行政区划代码
100000 天津 0 天津是直辖市
100100 天津市 100000
100101 和平区 100100

  1. 先在所有省份中遍历匹配,匹配成功,则匹配的部分就是省份,存起来,然后删除掉原地址这部分
  2. 接下来的字符串在市匹配,匹配成功与1一样
  3. ...类似

用户输入不准的话,你要把用户输入发送到后台查询,把相似的数据库中的地名返回到前台让用户填写

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题