Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MCA 源中部分地级行政区缺失 #50

Open
timothyqiu opened this issue Jun 26, 2018 · 4 comments
Open

MCA 源中部分地级行政区缺失 #50

timothyqiu opened this issue Jun 26, 2018 · 4 comments

Comments

@timothyqiu
Copy link
Member

MCA 源中,所有 revision 都有部分地级行政区缺失,例如 110101(北京东城区)对应的地级行政区 110100 不存在。(对应标准及 STATS 源中,该地级行政区为「市辖区」)

所有直辖市都有缺失情况,但也有其它省份存在特殊情况,例如 201801 版本中,以下县级行政区缺少对应的地级行政区:

济源市 河南省
仙桃市 湖北省
潜江市 湖北省
天门市 湖北省
神农架林区 湖北省
五指山市 海南省
琼海市 海南省
文昌市 海南省
万宁市 海南省
东方市 海南省
定安县 海南省
屯昌县 海南省
澄迈县 海南省
临高县 海南省
白沙黎族自治县 海南省
昌江黎族自治县 海南省
乐东黎族自治县 海南省
陵水黎族自治县 海南省
保亭黎族苗族自治县 海南省
琼中黎族苗族自治县 海南省
石河子市 新疆维吾尔自治区
阿拉尔市 新疆维吾尔自治区
图木舒克市 新疆维吾尔自治区
五家渠市 新疆维吾尔自治区
北屯市 新疆维吾尔自治区
铁门关市 新疆维吾尔自治区
双河市 新疆维吾尔自治区
可克达拉市 新疆维吾尔自治区
昆玉市 新疆维吾尔自治区

首先,这影响 Spec 中 Division.province 属性的定义,该属性只有在对省级行政区对象调用时才允许为空值。

其次,由于地级行政区缺失,使用 GB2260.provinces() & GB2260.prefectures(province_code) & GB2260.counties(prefecture_code) 三级遍历行政区划时,无法到遍历到这些县级行政区。

似乎需要想个解决方法。

@tonyseek
Copy link
Contributor

我认为有两种方案:

  1. 中间级行政区不存在的,可以用上级行政区来补全。例如 110101北京市-北京市-东城区 (1101xx 按照 11xxxx 补全为 北京市)
  2. 中间级行政区不存在的,填充空数据,在 spec 中注明该行为,实现格式化库函数的时候加以处理。例如 110101北京市-空-东城区,库函数格式化为 北京市东城区 (跳过空记录)

@timothyqiu
Copy link
Member Author

在翻阅 GB/T 2260 文档时看到《数字代码的编制原则和结构》一节中有提到:

(第二层即中间两位代码)
01~20、51~70 表示市,01、02 还用于表示直辖市所辖市辖区、县汇总码;
21~50 表示地区、自治州、盟;
90 表示省(自治区)直辖县级行政区划汇总码

  • 我列出的 29 个特例县级行政区中间两位都是 90,也是全国的所有直辖县级行政区;
  • 其余无地级行政区对应的县级行政区中间两位都是 01 或 02,也都是直辖市的市辖区、县。

这样的话,我比较支持第二种方案。

第一种方案的问题是,可能会在一个直辖市下搞出两个同名的地级行政区,比如重庆市下就会又有 500100500200 两个「重庆市」。如果此数据用于制作省市区选择控件,就会很奇怪。

第二种方案,有一个好处,因为按照上面引用的《编制原则和结构》,并不是每个 GB2260 代码都对应实际的行政区,也可能仅仅是「汇总码」,并不真正承担「表示某一行政区」的功能。

  • 从这种角度看,MCA 源中所提供的都是有对应行政区的数据,不包含汇总码;
  • STATS 源及标准源中的数据,则还额外包含「市辖区」「县」「城区」「市区」等等非实际行政区;

如果能够用类似 Division.is_placeholder 的形式帮助使用者区分汇总码与非汇总码,应该可以方便制作省市区选择控件等应用。(MCA 源的数据比较好实现,比如 XX9000、不存在的 XXXX01 XXXX02 XX0100 XX0200;STATS 源及标准源中的数据则有一部分比较难以区分,比如 XXXX02。)

@ycrao
Copy link

ycrao commented Dec 25, 2019

最新的数据建议参考此项目:爬虫

2019年02月的数据:https://github.com/douyasi/identity-card/blob/master/crawler/data/201902.txt

@jaywcjlove
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants