Skip to content

项目背景 ​

想先查数据,从 快速上手 开始。这一页解释数据为什么要按年份留着。

官方全量不再公开发布 ​

原来的来源是国家统计局网站上的「统计用区划代码和城乡划分代码」。2024 年起停止公开发布,2026 年起转到 国家地名信息库(dmfw)。五级全量没有一个还在更新的官方下载地址。

旧做法是把那个网站镜像下来。源一停,镜像也就停了。

现在的做法 ​

留一份 2023 年的全量,之后的变更写成 Patch,需要时再和其他来源对一下。数据和程序分开:

text
维护者整理数据 → 打成 npm 包 @cndiv/source-年份
用户执行 cndiv hydrate → 本机 ~/.cndiv/cache.db
变更写在 patches/*.json → cndiv apply-patch

使用者只从 npm 把数据包 注水 到本地 SQLite,不访问统计局或地名信息库。大文件不进 git,走 npm 和 GitHub Release。

每条记录带来源,大致四档:official_nbs(统计局)> mca_decree(民政部公报)> community(社区提交)> shadow_map(商业地图推断)。

三条来源 ​

层来源做什么
基准2023 年五级全量不再改写的底账,村级 620,572 条
之后的变更国家地名信息库维护者采集差异,写成 Patch
对照modood/Administrative-divisions-of-China(WTFPL)等交叉核对、补历史

为什么要按年份存 ​

县级单位的总数四十年几乎不动。真正常发生的是撤县设区、县改市:总数不变,每个码的含义变了。

1980–2020 · GB2260 三级 · source-history
县级行政区划总数四十年稳定在 ~3,200——变的是结构(撤县设区),不是数量
3,1003,1503,2001980 · 3,1062004 · 3,226 峰值19801990200020102020
纵轴放大到 3,080–3,240:四十年净变化 <120(<4%)。总量的平稳掩盖了底层大量「撤县设区/县改市」的结构调整——这正是需要按 (code, year) 版本化、而非只存一版全量的原因。2021 为残缺年(仅 21 条)故止于 2020。

所以同一条码可以在不同年份各存一行(主键是码 + 年份)。这样才能回答「2015 年的这个码是什么」。例子见 常见用法 · 两个年份。

GB2260 与 NBS 的差别、以及数据包的校验和,见 历年快照与下载。

数据来源于公开政府网站(国家统计局、民政部国家地名信息库),仅供学习与研究使用。代码以 MIT 许可。