xiangyuecn / AreaCity-JsSpider-StatsGov

省市区县乡镇三级或四级城市数据,带拼音标注、坐标、行政区域边界范围;2024年03月03日最新采集,提供csv格式文件,支持在线转成多级联动js代码、通用json格式,提供软件转成shp、geojson、sql、导入数据库;带浏览器里面运行的js采集源码,综合了中华人民共和国民政部、国家统计局、高德地图、腾讯地图行政区划数据

Home Page:https://xiangyuecn.github.io/AreaCity-JsSpider-StatsGov/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

提个个人建议 - 直筒子市等缺少第三级区级优先把下级提上来做区级,比较人性化点

jlzq1314 opened this issue · comments

您好,不设区的直筒子市没有第三级区级,能否继续优先获取下级村委信息,如果没有。再自动添加同名的一级作为区级。例如:广东-中山-石岐区-桂园社区,这样比较人性化点,谢谢大佬的贡献!

这种结构涉及到的城市有:直筒子市(东莞、儋州等共5个)、省直辖县级市(济源、潜江等约30个)、港澳,本段内容以中山、武汉两个城市为例:

格式 乡镇街道 村委会、居委会
原始
广东 中山 - 石岐街道 仙湖社区居民委员会
湖北 武汉 武昌区 黄鹤楼街道 花堤社区居委会
往上提一级
广东 中山 石岐街道 仙湖社区居民委员会 -
湖北 武汉 武昌区 黄鹤楼街道 花堤社区居委会
填充同名一级
广东 中山 中山 石岐街道 仙湖社区居民委员会
湖北 武汉 武昌区 黄鹤楼街道 花堤社区居委会

其实我13年采集版本就是你这样做的(把下级往上提一级),但后面为啥会废弃,用添加同名一级作为新的采集方案,原因如下:

  1. 往上提一级后,石岐街道武昌区就在路径深度上算是平级了,但他们明显不在一个量级😂,虽然可以通过级别等字段来标注这是第4级,但实际操作可能不太方便,实际使用需要额外写大量代码(不是几行代码能解决的)来处理这种跨级问题,因为这种数据是在并不多 ≈40/3000。

  2. 如果我们只需要省市区三级数据,如果下一级往上提了一级后,石岐街道是第四级,这种数据其实是矛盾的,我要三级咋跑来第四级的数据。


然后我们看填充同名一级的方案,以上问题就统统解决了,而且实际使用的代码量会更少,因为不需要大量额外的代码处理跨级问题;并且整个数据都非常整齐,全部是标准的4级结构。

然后新方案就剩下一个相对比较致命的问题了,不过解决方法也非常简单,就是路径的显示:

  1. 原始的数据:广东 - 中山 - 石岐街道 - 仙湖社区居民委员会
  2. 往上提一级:广东 - 中山 - 石岐街道 - 仙湖社区居民委员会
  3. 填充的一级:广东 - 中山 - 中山 - 石岐街道 - 仙湖社区居民委员会

前两种没有问题,第三种多了一个中山,这种数据我们可以通过城市的id规则来过滤掉这个多出来的,参考id字段详细资料,填充的id是上级id结尾补0生成的id,中山(4420)-中山(4420 00),很容易鉴别出4420 00为填充数据,然后显示的时候剔除掉,代码量不会太大。

“这种数据我们可以通过城市的id规则来过滤掉这个多出来的,”
这解决方案可以,但考虑到人性化体验的问题,应该是在select选择框在第三级别的时候就应该进行处理,是吗?

都可以,要人性化选择就需要多写些代码,要简单就可以不用去处理这些问题,毕竟这种城市少之又少