|
@@ -6,82 +6,90 @@
|
|
|
[](https://www.npmjs.com/package/china-division)
|
|
|
[](https://raw.githubusercontent.com/modood/Administrative-divisions-of-China/master/LICENSE)
|
|
|
|
|
|
-中华人民共和国行政区划:省份、城市、区县、乡镇(街道)
|
|
|
+中华人民共和国行政区划(五级):
|
|
|
|
|
|
-* 数据来源(民政部、国家统计局):
|
|
|
+* 省级(省份、直辖市、自治区)
|
|
|
+* 地级(城市)
|
|
|
+* 县级(区县)
|
|
|
+* 乡级(乡镇、街道)
|
|
|
+* 村级(村委会、居委会)
|
|
|
+
|
|
|
+## 数据来源
|
|
|
+
|
|
|
+* 民政部、国家统计局:
|
|
|
* [中华人民共和国民政部-中华人民共和国行政区划代码](http://www.mca.gov.cn/article/sj/tjbz/a/)
|
|
|
- * [中华人民共和国国家统计局-行政区划代码](http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/)
|
|
|
* [中华人民共和国国家统计局-统计用区划和城乡划分代码](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/)
|
|
|
* [中华人民共和国国家统计局-统计用区划代码和城乡划分代码编制规则](http://www.stats.gov.cn/tjsj/tjbz/200911/t20091125_8667.html)
|
|
|
* 本项目已更新至:
|
|
|
- * [最新县及县以上行政区划代码(截止时间:2016-07-31,发布时间:2017-03-10)](http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201703/t20170310_1471429.html)
|
|
|
* [2016年统计用区划代码和城乡划分代码(截止时间:2016-07-31,发布时间:2017-05-16)](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/index.html)
|
|
|
|
|
|
-## JSON
|
|
|
-
|
|
|
-| 文件列表 | 下载地址 |
|
|
|
-|:---------------------------------------------|:---------------|
|
|
|
-| 省份数据 | [provinces.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/provinces.json) |
|
|
|
-| 城市数据 | [cities.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/cities.json) |
|
|
|
-| 区县数据 | [areas.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/areas.json) |
|
|
|
-| 乡镇(街道)数据 | [streets.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/streets.json) |
|
|
|
-| “省份、城市” 二级联动数据 | [pc.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pc.json) |
|
|
|
-| “省份、城市” 二级联动数据(带编码) | [pc-code.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pc-code.json) |
|
|
|
-| “省份、城市、区县” 三级联动数据 | [pca.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pca.json) |
|
|
|
-| “省份、城市、区县” 三级联动数据(带编码) | [pca-code.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pca-code.json) |
|
|
|
-| “省份、城市、区县、乡镇” 四级联动数据 | [pcas.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pcas.json) |
|
|
|
-| “省份、城市、区县、乡镇” 四级联动数据(带编码) | [pcas-code.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pcas-code.json) |
|
|
|
+## 数据下载
|
|
|
|
|
|
-> 提示:需要打包下载全部文件,请看 [Releases](https://github.com/modood/Administrative-divisions-of-China/releases)。
|
|
|
+| 文件列表 | JSON | CSV |
|
|
|
+|:-----------------------------|:-----|:----|
|
|
|
+| 省级(省份、直辖市、自治区) | [provinces.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/provinces.json) | [provinces.csv](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/provinces.csv) |
|
|
|
+| 地级(城市) | [cities.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/cities.json) | [cities.csv](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/cities.csv) |
|
|
|
+| 县级(区县) | [areas.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/areas.json) | [areas.csv](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/areas.csv) |
|
|
|
+| 乡级(乡镇、街道) | [streets.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/streets.json) | [streets.csv](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/streets.csv) |
|
|
|
+| 村级(村委会、居委会) | [villages.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/villages.json) | [villages.csv](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/villages.csv) |
|
|
|
|
|
|
-## Usage
|
|
|
+| 文件列表 | 普通 | 带编码 |
|
|
|
+|:--------------------------------------------|:-----|:-------|
|
|
|
+| “省份、城市” 二级联动数据 | [pc.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pc.json) | [pc-code.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pc-code.json) |
|
|
|
+| “省份、城市、区县” 三级联动数据 | [pca.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pca.json) | [pca-code.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pca-code.json) |
|
|
|
+| “省份、城市、区县、乡镇” 四级联动数据 | [pcas.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pcas.json) | [pcas-code.json](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/pcas-code.json) |
|
|
|
+| “省份、城市、区县、乡镇、村庄” 五级联动数据 | - | - |
|
|
|
|
|
|
-抓取并导出最新数据
|
|
|
+> 提示:需要打包下载全部文件,请看 [Releases](https://github.com/modood/Administrative-divisions-of-China/releases)。
|
|
|
|
|
|
-```
|
|
|
-$ npm install
|
|
|
+## 数据更新
|
|
|
|
|
|
-$ npm run build
|
|
|
```
|
|
|
+$ yarn
|
|
|
+$ npm run fetch
|
|
|
```
|
|
|
-[1/1] 正在抓取省份、城市和区县数据...
|
|
|
-[1/2848] 正在抓取乡镇数据,当前区县: 110105 朝阳区
|
|
|
-[2/2848] 正在抓取乡镇数据,当前区县: 110101 东城区
|
|
|
-[3/2848] 正在抓取乡镇数据,当前区县: 110106 丰台区
|
|
|
-[4/2848] 正在抓取乡镇数据,当前区县: 110109 门头沟区
|
|
|
-[5/2848] 正在抓取乡镇数据,当前区县: 110112 通州区
|
|
|
-[6/2848] 正在抓取乡镇数据,当前区县: 110102 西城区
|
|
|
-[7/2848] 正在抓取乡镇数据,当前区县: 110107 石景山区
|
|
|
-[8/2848] 正在抓取乡镇数据,当前区县: 110111 房山区
|
|
|
-[9/2848] 正在抓取乡镇数据,当前区县: 110108 海淀区
|
|
|
-[10/2848] 正在抓取乡镇数据,当前区县: 110113 顺义区
|
|
|
-...
|
|
|
-[2841/2848] 正在抓取乡镇数据,当前区县: 659006 铁门关市
|
|
|
-[2842/2848] 正在抓取乡镇数据,当前区县: 210522 桓仁满族自治县
|
|
|
-[2843/2848] 正在抓取乡镇数据,当前区县: 210881 盖州市
|
|
|
-[2844/2848] 正在抓取乡镇数据,当前区县: 130902 新华区
|
|
|
-[2845/2848] 正在抓取乡镇数据,当前区县: 150782 牙克石市
|
|
|
-[2846/2848] 正在抓取乡镇数据,当前区县: 542421 那曲县
|
|
|
-[2847/2848] 正在抓取乡镇数据,当前区县: 610122 蓝田县
|
|
|
-[2848/2848] 正在抓取乡镇数据,当前区县: 610322 凤翔县
|
|
|
-[1/5] 正在导出 “省份” JSON 数据...
|
|
|
-[2/5] 正在导出 “城市” JSON 数据...
|
|
|
-[3/5] 正在导出 “区县” JSON 数据...
|
|
|
-[4/5] 正在导出 “乡镇” JSON 数据...
|
|
|
-[5/5] 数据抓取完成!
|
|
|
-[1/4] 正在导出 “省份、城市” 二级联动数据...
|
|
|
-[2/4] 正在导出 “省份、城市、区县” 三级联动数据...
|
|
|
-[3/4] 正在导出 “省份、城市、区县、乡镇” 四级联动数据...该步骤操作数据较多,比较耗时,请耐心等候...
|
|
|
-[4/4] 数据更新完成!
|
|
|
```
|
|
|
+[1/1]正在抓取省级数据...
|
|
|
|
|
|
-> 提示:
|
|
|
->
|
|
|
-> 由于抓取乡镇数据为异步操作,每次输出的乡镇数据顺序可能不同
|
|
|
->
|
|
|
-> 但是不会影响其它数据的顺序以及所有数据的完整性。
|
|
|
+[1/31]正在抓取地级数据,当前省级:11 北京市
|
|
|
+[2/31]正在抓取地级数据,当前省级:12 天津市
|
|
|
+[3/31]正在抓取地级数据,当前省级:13 河北省
|
|
|
+[4/31]正在抓取地级数据,当前省级:14 山西省
|
|
|
+...
|
|
|
+[29/31]正在抓取地级数据,当前省级:63 青海省
|
|
|
+[30/31]正在抓取地级数据,当前省级:64 宁夏回族自治区
|
|
|
+[31/31]正在抓取地级数据,当前省级:65 新疆维吾尔自治区
|
|
|
+
|
|
|
+[1/344]正在抓取县级数据,当前地级:1101 市辖区
|
|
|
+[2/344]正在抓取县级数据,当前地级:1201 市辖区
|
|
|
+[3/344]正在抓取县级数据,当前地级:1301 石家庄市
|
|
|
+[4/344]正在抓取县级数据,当前地级:1302 唐山市
|
|
|
+...
|
|
|
+[342/344]正在抓取县级数据,当前地级:6542 塔城地区
|
|
|
+[343/344]正在抓取县级数据,当前地级:6543 阿勒泰地区
|
|
|
+[344/344]正在抓取县级数据,当前地级:6590 自治区直辖县级行政区划
|
|
|
+
|
|
|
+[1/2856]正在抓取乡级数据,当前县级:110101 东城区
|
|
|
+[2/2856]正在抓取乡级数据,当前县级:110102 西城区
|
|
|
+[3/2856]正在抓取乡级数据,当前县级:110105 朝阳区
|
|
|
+[4/2856]正在抓取乡级数据,当前县级:110106 丰台区
|
|
|
+...
|
|
|
+[2854/2856]正在抓取乡级数据,当前县级:659003 图木舒克市
|
|
|
+[2855/2856]正在抓取乡级数据,当前县级:659004 五家渠市
|
|
|
+[2856/2856]正在抓取乡级数据,当前县级:659006 铁门关市
|
|
|
+
|
|
|
+[1/42951]正在抓取村级数据,当前乡级:110101001 东华门街道办事处
|
|
|
+[2/42951]正在抓取村级数据,当前乡级:110101002 景山街道办事处
|
|
|
+[3/42951]正在抓取村级数据,当前乡级:110101003 交道口街道办事处
|
|
|
+[4/42951]正在抓取村级数据,当前乡级:110101004 安定门街道办事处
|
|
|
+...
|
|
|
+[42949/42951]正在抓取村级数据,当前乡级:659004502 兵团一零三团
|
|
|
+[42950/42951]正在抓取村级数据,当前乡级:659006100 博古其镇
|
|
|
+[42951/42951]正在抓取村级数据,当前乡级:659006101 双丰镇
|
|
|
+[100%] 数据抓取完成!
|
|
|
+```
|
|
|
|
|
|
-## Testing
|
|
|
+## 数据校验
|
|
|
|
|
|
```
|
|
|
$ npm test
|
|
@@ -89,18 +97,141 @@ $ npm test
|
|
|
> eslint . && mocha -t 5000
|
|
|
|
|
|
中华人民共和国行政区划:
|
|
|
- ✓ 省份数据
|
|
|
- ✓ 城市数据
|
|
|
- ✓ 区县数据
|
|
|
- ✓ 乡镇数据
|
|
|
+ ✓ “一级” 省级(省份、直辖市、自治区)数据
|
|
|
+ ✓ “二级” 地级(城市)数据
|
|
|
+ ✓ “三级” 县级(区县)数据
|
|
|
+ ✓ “四级” 乡级(乡镇、街道)数据
|
|
|
+ ✓ “五级” 村级(村委会、居委会)数据
|
|
|
+
|
|
|
+ 联动数据
|
|
|
✓ “省份、城市” 二级联动数据
|
|
|
✓ “省份、城市、区县” 三级联动数据
|
|
|
✓ “省份、城市、区县、乡镇” 四级联动数据
|
|
|
✓ “某省、某市、某县、某镇” 不存在
|
|
|
|
|
|
- 8 passing (12ms)
|
|
|
+ 9 passing (37ms)
|
|
|
```
|
|
|
|
|
|
+## 数据库支持
|
|
|
+
|
|
|
+目前本项目抓取的数据保存在 sqlite3,数据文件下载:[sqlite.data](https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/sqlite.data)。
|
|
|
+
|
|
|
+可以自己将数据迁移到其他数据库管理系统中(MySQL, Oracle, MSSQL 等)。
|
|
|
+
|
|
|
+**省级数据模型**
|
|
|
+
|
|
|
+```sql
|
|
|
+CREATE TABLE IF NOT EXISTS `province` (
|
|
|
+ `code` VARCHAR(255) PRIMARY KEY,
|
|
|
+ `name` VARCHAR(255)
|
|
|
+);
|
|
|
+```
|
|
|
+
|
|
|
+数据预览:
|
|
|
+
|
|
|
+| code | name |
|
|
|
+|:-----|:-------|
|
|
|
+| 11 | 北京市 |
|
|
|
+| 12 | 天津市 |
|
|
|
+
|
|
|
+**地级数据模型**
|
|
|
+
|
|
|
+```sql
|
|
|
+CREATE TABLE IF NOT EXISTS `city` (
|
|
|
+ `code` VARCHAR(255) PRIMARY KEY,
|
|
|
+ `name` VARCHAR(255),
|
|
|
+ `provinceCode` VARCHAR(255)
|
|
|
+ REFERENCES `province` (`code`)
|
|
|
+ ON DELETE SET NULL ON UPDATE CASCADE
|
|
|
+);
|
|
|
+```
|
|
|
+
|
|
|
+数据预览:
|
|
|
+
|
|
|
+| code | name | provinceCode |
|
|
|
+|:-----|:---------|:-------------|
|
|
|
+| 1301 | 石家庄市 | 13 |
|
|
|
+| 1302 | 唐山市 | 13 |
|
|
|
+| 1303 | 秦皇岛市 | 13 |
|
|
|
+
|
|
|
+**县级数据模型**
|
|
|
+
|
|
|
+```sql
|
|
|
+CREATE TABLE IF NOT EXISTS `area` (
|
|
|
+ `code` VARCHAR(255) PRIMARY KEY,
|
|
|
+ `name` VARCHAR(255),
|
|
|
+ `cityCode` VARCHAR(255)
|
|
|
+ REFERENCES `city` (`code`)
|
|
|
+ ON DELETE SET NULL ON UPDATE CASCADE,
|
|
|
+ `provinceCode` VARCHAR(255)
|
|
|
+ REFERENCES `province` (`code`)
|
|
|
+ ON DELETE SET NULL ON UPDATE CASCADE
|
|
|
+);
|
|
|
+```
|
|
|
+
|
|
|
+数据预览:
|
|
|
+
|
|
|
+| code | name | cityCode | provinceCode |
|
|
|
+|:-------|:---------|:---------|:-------------|
|
|
|
+| 110105 | 朝阳区 | 1101 | 11 |
|
|
|
+| 110106 | 丰台区 | 1101 | 11 |
|
|
|
+| 110107 | 石景山区 | 1101 | 11 |
|
|
|
+
|
|
|
+**乡级数据模型**
|
|
|
+
|
|
|
+```sql
|
|
|
+CREATE TABLE IF NOT EXISTS `street` (
|
|
|
+ `code` VARCHAR(255) PRIMARY KEY,
|
|
|
+ `name` VARCHAR(255),
|
|
|
+ `areaCode` VARCHAR(255)
|
|
|
+ REFERENCES `area` (`code`)
|
|
|
+ ON DELETE SET NULL ON UPDATE CASCADE,
|
|
|
+ `cityCode` VARCHAR(255)
|
|
|
+ REFERENCES `city` (`code`)
|
|
|
+ ON DELETE SET NULL ON UPDATE CASCADE,
|
|
|
+ `provinceCode` VARCHAR(255)
|
|
|
+ REFERENCES `province` (`code`)
|
|
|
+ ON DELETE SET NULL ON UPDATE CASCADE
|
|
|
+);
|
|
|
+```
|
|
|
+
|
|
|
+数据预览:
|
|
|
+
|
|
|
+| code | name | areaCode | cityCode | provinceCode |
|
|
|
+|:----------|:-----------------|:---------|:---------|:-------------|
|
|
|
+| 110101001 | 东华门街道办事处 | 110101 | 1101 | 11 |
|
|
|
+| 110101002 | 景山街道办事处 | 110101 | 1101 | 11 |
|
|
|
+| 110101003 | 交道口街道办事处 | 110101 | 1101 | 11 |
|
|
|
+
|
|
|
+**村级数据模型**
|
|
|
+
|
|
|
+```sql
|
|
|
+CREATE TABLE IF NOT EXISTS `village` (
|
|
|
+ `code` VARCHAR(255) PRIMARY KEY,
|
|
|
+ `name` VARCHAR(255),
|
|
|
+ `streetCode` VARCHAR(255)
|
|
|
+ REFERENCES `street` (`code`)
|
|
|
+ ON DELETE SET NULL ON UPDATE CASCADE,
|
|
|
+ `areaCode` VARCHAR(255)
|
|
|
+ REFERENCES `area` (`code`)
|
|
|
+ ON DELETE SET NULL ON UPDATE CASCADE,
|
|
|
+ `cityCode` VARCHAR(255)
|
|
|
+ REFERENCES `city` (`code`)
|
|
|
+ ON DELETE SET NULL ON UPDATE CASCADE,
|
|
|
+ `provinceCode` VARCHAR(255)
|
|
|
+ REFERENCES `province` (`code`)
|
|
|
+ ON DELETE SET NULL ON UPDATE CASCADE
|
|
|
+);
|
|
|
+```
|
|
|
+
|
|
|
+数据预览:
|
|
|
+
|
|
|
+| code | name | streetCode | areaCode | cityCode | provinceCode |
|
|
|
+|:-------------|:-----------|:-----------|:---------|:---------|:-------------|
|
|
|
+| 620723101213 | 新民村委会 | 620723101 | 620723 | 6207 | 62 |
|
|
|
+| 620723102201 | 大寨村委会 | 620723102 | 620723 | 6207 | 62 |
|
|
|
+| 620723102202 | 长庄村委会 | 620723102 | 620723 | 6207 | 62 |
|
|
|
+
|
|
|
## Stargazers over time
|
|
|
|
|
|
[](https://starcharts.herokuapp.com/modood/Administrative-divisions-of-China)
|
|
@@ -115,4 +246,4 @@ $ npm test
|
|
|
|
|
|
## License
|
|
|
|
|
|
-this repo is released under the [WTFPL](http://www.wtfpl.net/) – Do What the Fuck You Want to Public License.
|
|
|
+This repo is released under the [WTFPL](http://www.wtfpl.net/) – Do What the Fuck You Want to Public License.
|