日期:2014-05-20  浏览次数:20963 次

如何划分 地址所在省份
如何判断 某个地址 所在省份,或者正确的截取出 省,市,区,县,州 等等这些,
因为可能不同的省有同样的县,有可能高新区,开发区,等这样的地址不是区,


不好意思,只能发表 30 分的帖子了
------最佳解决方案--------------------
引用:
明白楼主的意思了,楼主应该是说,用户输入一个地址,然后从用户输入的地址中获取省市区县等信息
假如说北京有个长安区,西安有个长安区,这个时候如果取区的话,就不知道这个区到底是哪个市的了,这个一是要看用户输入的地址是不是标准格式的比如 陕西省西安市长安区高新路000号这样的话可以用省,市,区作为关键字就可以截取出正确的区域了。

但是还有很多用户输入不是这么标准的:这个就比较麻烦,如果有一套比……

对上面的补充:
要想完整截取地址,你必须要拥有 省份表,城市表,县区表,要不然凭经验去判断,肯定不可能的。以现在的物流行业来看,几乎都不写邮政编码。只是写个地址。所以只能用地址中的关键字去判断所在省市区。以上地理区域信息数据如果没有的话,很难做好的
------其他解决方案--------------------
这个属于 无限极菜单 地区表

[唯一ID] [地区名称] [父地区ID]
100000    亚洲
200000    中国      100000
200001    辽宁省    200000    
300001    大连市    200001
400001    中山区    300001

然后用递归就可以排列出来了
------其他解决方案--------------------
你的数据库是如何设计的??

ID  ParentID  Name
0      -1     中国

34     0     安徽省
...
3424    1    XX市
...
342425       XX县
...

这样设计,即使不同的省有同样的县,根据县名,然后截取ID前n位去匹配市和省信息,是不会出现错误的。

------其他解决方案--------------------
这个嘛,,借分。。。
------其他解决方案--------------------
不好意思,是这样

你的数据库是如何设计的??

ID   ParentID   Name
0      -1        中国

34     0         安徽省
...
3424   34         XX市
...
342425  3424      XX县
...

这样设计,即使不同的省有同样的县,根据县名,然后截取ID前n位去匹配市和省信息,是不会出现错误的。
------其他解决方案--------------------
地域代码 是固定,只能根据地址 去 找出相应的代码,

以下 只是部分的地区的:不同省,不同市,不同县,区,州等 都有一个唯一的 区域代码
要根据某个地址去找它所在的代码:
440404 金湾区
440403 斗门区
440402 香洲区
440401     
440400 珠海市
440308 盐田区
440307 龙岗区
440306 宝安区
440305 南山区
440304 福田区
440303 罗湖区
440301     
440300 深圳市
440282 南雄市
440281 乐昌市
440233 新丰县
440232 乳源瑶族自治县
440229 翁源县
440224 仁化县
440222 始兴县
440205 曲江区
450103 青秀区
350206 湖里区


例子1:
地址:( 办公地址:广西壮族自治区南宁市青秀区民族大道141号中鼎·万象东方D单元D606号房)
代码:450103
那应该取它最后的 区代码,就是只取 青秀区 代码 450103,不要前面的区和市的代码

例子2:
地址:福建省厦门市湖里区枋湖工业小区29号厂房一楼之二)
代码:350206

因为 枋湖工业小区  不是 地域的区,应该取湖里区,

但是有些 地址 后面不写 市,区,
比如  :广东省广州天河江南大道中
省略了市和 区,应该取天河区 的代码,这样的情况不好判断,但是 能判断百分之七八十就好了,不要求全部正确,因为要做的完全正确 非常的难,
还有一些特例: 比如 不同是省 会有相同的 县 名,这也是有可能的,就要做特别处理。
如果 有这方面的 知识,希望可以交流
------其他解决方案--------------------
明白楼主的意思了,楼主应该是说,用户输入一个地址,然后从用户输入的地址中获取省市区县等信息
假如说北京有个长安区,西安有个长安区,这个时候如果取区的话,就不知道这个区到底是哪个市的了,这个一是要看用户输入的地址是不是标准格式的比如 陕西省西安市长安区高新路000号这样的话可以用省,市,区作为关键字就可以截取出正确的区域了。

但是还有很多用户输入不是这么标准的:这个就比较麻烦,如果有一套比较完整的地理区域信息数据,那也还可以处理一下。