提个个人建议 - 直筒子市等缺少第三级区级优先把下级提上来做区级,比较人性化点
jlzq1314 opened this issue · comments
您好,不设区的直筒子市没有第三级区级,能否继续优先获取下级村委信息,如果没有。再自动添加同名的一级作为区级。例如:广东-中山-石岐区-桂园社区,这样比较人性化点,谢谢大佬的贡献!
这种结构涉及到的城市有:直筒子市(东莞、儋州等共5个)、省直辖县级市(济源、潜江等约30个)、港澳,本段内容以中山、武汉两个城市为例:
格式 | 省 | 市 | 区 | 乡镇街道 | 村委会、居委会 |
---|---|---|---|---|---|
原始 | |||||
广东 | 中山 | - | 石岐街道 | 仙湖社区居民委员会 | |
湖北 | 武汉 | 武昌区 | 黄鹤楼街道 | 花堤社区居委会 | |
往上提一级 | |||||
广东 | 中山 | 石岐街道 | 仙湖社区居民委员会 | - | |
湖北 | 武汉 | 武昌区 | 黄鹤楼街道 | 花堤社区居委会 | |
填充同名一级 | |||||
广东 | 中山 | 中山 | 石岐街道 | 仙湖社区居民委员会 | |
湖北 | 武汉 | 武昌区 | 黄鹤楼街道 | 花堤社区居委会 |
其实我13年采集版本就是你这样做的(把下级往上提一级),但后面为啥会废弃,用添加同名一级作为新的采集方案,原因如下:
-
往上提一级后,
石岐街道
和武昌区
就在路径深度上算是平级了,但他们明显不在一个量级😂,虽然可以通过级别等字段来标注这是第4级,但实际操作可能不太方便,实际使用需要额外写大量代码(不是几行代码能解决的)来处理这种跨级问题,因为这种数据是在并不多 ≈40/3000。 -
如果我们只需要省市区三级数据,如果下一级往上提了一级后,
石岐街道
是第四级,这种数据其实是矛盾的,我要三级咋跑来第四级的数据。
然后我们看填充同名一级的方案,以上问题就统统解决了,而且实际使用的代码量会更少,因为不需要大量额外的代码处理跨级问题;并且整个数据都非常整齐,全部是标准的4级结构。
然后新方案就剩下一个相对比较致命的问题了,不过解决方法也非常简单,就是路径的显示:
- 原始的数据:广东 - 中山 - 石岐街道 - 仙湖社区居民委员会
- 往上提一级:广东 - 中山 - 石岐街道 - 仙湖社区居民委员会
- 填充的一级:广东 - 中山 - 中山 - 石岐街道 - 仙湖社区居民委员会
前两种没有问题,第三种多了一个中山,这种数据我们可以通过城市的id规则来过滤掉这个多出来的,参考id字段详细资料,填充的id是上级id结尾补0生成的id,中山(4420)-中山(4420 00),很容易鉴别出4420 00为填充数据,然后显示的时候剔除掉,代码量不会太大。
“这种数据我们可以通过城市的id规则来过滤掉这个多出来的,”
这解决方案可以,但考虑到人性化体验的问题,应该是在select选择框在第三级别的时候就应该进行处理,是吗?
都可以,要人性化选择就需要多写些代码,要简单就可以不用去处理这些问题,毕竟这种城市少之又少