# Administrative-divisions-of-China

[![code style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
[![dependencies](https://david-dm.org/modood/Administrative-divisions-of-China.svg)](https://david-dm.org/modood/Administrative-divisions-of-China)
[![npm](https://img.shields.io/npm/v/china-division.svg)](https://www.npmjs.com/package/china-division)
[![downloads](https://img.shields.io/npm/dt/china-division.svg)](https://www.npmjs.com/package/china-division)
[![license](https://img.shields.io/badge/license-WTFPL%20--%20Do%20What%20the%20Fuck%20You%20Want%20to%20Public%20License-green.svg)](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)。

## Usage

抓取并导出最新数据

```
$ npm install

$ npm run build
```
```
[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] 数据更新完成！
```

>  提示：
>
>  由于抓取乡镇数据为异步操作，每次输出的乡镇数据顺序可能不同
>
>  但是不会影响其它数据的顺序以及所有数据的完整性。

## Testing

```
$ npm test

> eslint . && mocha -t 5000

  中华人民共和国行政区划：
    ✓ 省份数据
    ✓ 城市数据
    ✓ 区县数据
    ✓ 乡镇数据
    ✓ “省份、城市” 二级联动数据
    ✓ “省份、城市、区县” 三级联动数据
    ✓ “省份、城市、区县、乡镇” 四级联动数据
    ✓ “某省、某市、某县、某镇” 不存在

  8 passing (12ms)
```

## Stargazers over time

[![Stargazers over time](https://starcharts.herokuapp.com/modood/Administrative-divisions-of-China.svg)](https://starcharts.herokuapp.com/modood/Administrative-divisions-of-China)

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

## License

this repo is released under the [WTFPL](http://www.wtfpl.net/) – Do What the Fuck You Want to Public License.
