读书人

怎么划分 地址所在省份

发布时间: 2012-12-25 16:18:29 作者: rapoo

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


不好意思,只能发表 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号这样的话可以用省,市,区作为关键字就可以截取出正确的区域了。

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


以3楼的例子中的地址:
广东省广州天河江南大道中
在存在地理区域信息的条件下,我们可以得出,省:广东,市:广州,下面我们可以去匹配路名,假如找到 江南大道 这个地标,ok,看这个地标是天河区的 那么完整的 省市区街道就出来了

如果有邮政编码,也是可以推出对应的省市区的,因为邮政编码一般都是对应到某个街道的。但是也需要有邮政编码数据库的支持才行。
[其他解释]

引用:
引用:

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

但是还有很多用户输入不是这么标准的:……



你差不多理解了我的意思了
[其他解释]
引用:
你的数据库是如何设计的??

ID ParentID Name
0 -1 中国

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

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

国家有行政区划的编号,身份蒸的号码就是那样计算出来的

读书人网 >.NET

热点推荐