本仓库把 cn/GB2260 与 yescallop/areacodes 的县级以上行政区划数据整理为可下载文件、SQLite 数据库和浏览器端静态 API。
当前构建覆盖到 2025 年,包含:
6,824条生命周期记录。3,212条当前有效记录。21,455条沿革变化记录。452,183条历史来源版本记录。376条车牌前缀映射。
python scripts/fetch_sources.py
python scripts/build_database.py
npm install
python scripts/build_site.py查询示例:
python scripts/query.py code 110101
python scripts/query.py year 2025 --province 北京市
python scripts/query.py changes 110103
python scripts/query.py history 110101 --source areacodes --limit 3
python scripts/query.py plate 京A根目录入口等价于查询脚本:
python main.py code 110101构建结果位于 data/build/,静态站点下载文件位于 site/public/downloads/;为兼容 EdgeOne 单文件 25MiB 限制,areas.sqlite 和 source_areas.csv 随完整 ZIP 包提供。
| 文件 | 格式 | 内容 |
|---|---|---|
areas.csv |
CSV | 生命周期主表,含代码、名称、层级、父级、状态、启用/弃用年份、新代码 |
areas.json |
JSON | 按行政区划代码索引的结构化数据 |
areas.dat |
DAT | UTF-8 制表符分隔紧凑表 |
areas.sqlite |
SQLite | 离线关系数据库与查询索引 |
changes.csv |
CSV | 新增、撤销、改名、旧新代码映射 |
versions.csv |
CSV | 上游版本清单 |
plate_codes.csv |
CSV | 车牌前缀映射 |
source_areas.csv |
CSV | GB2260 各来源版本快照 |
站点源码位于 site/src/,构建产物位于 site/public/。
python -m http.server 8000 -d site/public站点提供数据下载、SHA256 校验、行政区划检索、层级浏览、历史归属查询、年份对比、车牌前缀查询和静态 API 调试。
api/manifest.jsonapi/latest.jsonapi/search-index.jsonapi/changes.jsonapi/plates.jsonapi/versions.jsonapi/stats.jsonapi/schema.jsonapi/history-index.jsonapi/areas/{province_code}.jsonapi/history/{code}.json
示例:
curl -L "https://xihan123.github.io/gb2260/api/history/110101.json"EdgeOne / Go API 位于 cloud-functions/,完整接口文档见 cloud-functions/API.md,请求调试集合见 cloud-functions/test.http。
公开基础地址:
https://api-gb2260.xihan.website/api/v1
cloud-functions/test.http 覆盖了常用查询和错误响应:
| 请求 | 结果说明 |
|---|---|
GET /health |
返回服务状态、Go 运行时、最新数据年份和统计计数 |
GET /areas/110101 |
返回行政区划代码 110101 的生命周期记录,当前记录为北京市东城区 |
GET /areas/110000/children?year=2025 |
返回北京市在 2025 年有效的子级区划 |
GET /search?q=北京&status=active&limit=10 |
按代码、名称或路径检索,返回当前有效的北京相关记录 |
GET /search?q=东城&level=county&status=active&year=2025&limit=10 |
叠加层级、状态和年份过滤,返回 2025 年有效的县级东城记录 |
GET /year/2025?province=北京市&limit=20 |
返回 2025 年北京市有效区划 |
GET /changes/110103 |
返回与旧代码 110103 相关的沿革变化,包含映射到 110101 的记录 |
GET /history/110101?source=gb&limit=3 |
返回 110101 在 GB 来源版本中的历史记录 |
GET /plates/京A |
返回匹配车牌前缀 京A 的地区,北京市 |
GET /versions |
返回上游来源版本清单 |
GET /areas/not-code |
返回 400 错误,响应体包含 error 字段 |
列表类接口统一返回 items、total、limit;错误响应返回 error。
.
├── .github/workflows/ # CI、GitHub Pages、数据更新、Release
├── cloud-functions/ # EdgeOne / Go API 示例服务
├── data/raw/ # 上游原始数据快照
├── data/build/ # 规范化后的数据产物
├── scripts/ # 数据拉取、构建、站点生成和查询脚本
├── site/src/ # React + Vite 静态站点源码
├── site/public/ # 可直接发布的静态站点与下载文件
├── main.py # 查询脚本入口
├── package.json # 前端构建依赖
└── vite.config.js # Vite 构建配置
持续集成:编译 Python 脚本,构建数据和站点,运行烟测查询和 Go API 测试。更新数据:每周一自动拉取上游数据,变更后提交data/raw、data/build、cloud-functions/data、site/public。部署 GitHub Pages:推送到main或master后构建并发布site/public。发布数据:打 tag 或手动触发,上传 CSV、JSON、DAT、完整 ZIP 和校验文件到 GitHub Release;SQLite 与来源版本快照包含在完整 ZIP 内。
本仓库自有整理脚本、静态站点和整理产物采用 CC0 1.0 Universal 发布。脚本会在 data/raw/ 保存原始文件,使用生成数据时请同时遵守上游项目许可证和数据来源说明。