lcn
v7.2.0
Published
中华人民共和国行政区划,省市区数据
Maintainers
Readme
lcn
中华人民共和国行政区划,省市区数据。
支持 umd es cjs 等模块格式。
各版本对应的数据源
| lcn 版本 | 数据源 |
| --- | --- |
| v7.x | 2024年中华人民共和国县以上行政区划代码 |
| v6.x | 2023年中华人民共和国县以上行政区划代码 |
| v5.x | 2022年中华人民共和国行政区划代码 |
| v1.x ~ v4.x | 2020年12月中华人民共和国县以上行政区划代码 |
使用
安装
npm install lcnyarn add lcnpnpm add lcn示例
import { data, getPCA, getPC, parseCode } from 'lcn';
// 获取内地省市区级联表单格式数据
const pca = getPCA({
inland: true,
fieldNames: { code: 'value', name: 'label' }
});
console.log(pca);文档
主要数据和方法
- data - 全部省市区数据
- getPCA - 获取省/市/区级联数据
- getPC - 获取省/市级联数据
- parseCode - 解析区县编码
其他工具方法
- isProvinceCode - 是否为省级码
- isCityCode - 是否为市级码
- isAreaCode - 是否为区级码
- isInland - 是否为大陆内地区码
- getProvinceCode - 获取 2 位省级编码
- getCityCode - 获取 4 位市级编码
- isCrownCountryCityCode - 是否为直辖市或直辖县的市级编码
- getAreaCodeByNameAndCityCode - 通过区县名称和市编码反查区县编码
data
全部省市区数据。
[
{ code: '110000', name: '北京市' },
{ code: '110100', name: '北京市' },
{ code: '110101', name: '东城区' },
{ code: '110102', name: '西城区' }
// ...
];getPCA(options)
- options <object> 配置项
- options.inland <boolean> 仅包含中国大陆内地数据。默认为
false- options.fieldNames <{ code?: string; name?: string; children?: string; }> 自定义字段名
- options.dataSource <{ code: string; name: string; }[]> 自定义数据源,默认 data
- options.emptyChildrenValue <'array' | 'null' | 'none'> 子级为空时的值,默认 'array' 。array 表示为[],null 表示为 null,none 表示删除该子级。
获取省/市/区级联数据。
通过自定义字段名,可将数据成直接用于 antd element-ui 的表单组件中。
import { getPCA } from 'lcn';
const data1 = getPCA();
console.log(data1);
[
{
code: '110000',
name: '北京市',
children: [
// ...
]
}
// ...
];
const data2 = getPCA({
inland: true,
fieldNames: { code: 'value', name: 'label' }
});
console.log(data2);
[
{
value: '110000',
label: '北京市',
children: [
// ...
]
}
// ...
];如果需要转换不同字段,推荐使用 util-helpers.transformFieldNames 方法处理
getPC(options)
获取省/市级联数据。参数及用法和 getPCA 方法相同。
但是 getPC 比 getPCA 方法多一个 ignoreCrownCountryCity 参数。
如果 ignoreCrownCountryCity 为 true,则会忽略直辖市或省直辖县的市级,将直辖市的区和省直辖县的县添加到省份数据子集。例如:
// 正常情况下
const pc1 = getPC();
console.log(pc1);
[
{
code: '110000',
name: '北京市',
children: [{ code: '110100', name: '北京市' }]
},
{
code: '500000',
name: '重庆市',
children: [
{ code: '500100', name: '重庆市' },
{ code: '500200', name: '县' }
]
}
// ...
];
// 忽略直辖市或省直辖县的市级,并将直辖市的区和省直辖县的县添加到省份数据子集
const pc2 = getPC({
ignoreCrownCountryCity: true
});
console.log(pc2);
[
{
code: '110000',
name: '北京市',
children: [
{ code: '110101', name: '东城区' },
{ code: '110102', name: '西城区' },
{ code: '110105', name: '朝阳区' },
{ code: '110106', name: '丰台区' },
{ code: '110107', name: '石景山区' },
{ code: '110108', name: '海淀区' },
{ code: '110109', name: '门头沟区' },
{ code: '110111', name: '房山区' },
{ code: '110112', name: '通州区' },
{ code: '110113', name: '顺义区' },
{ code: '110114', name: '昌平区' },
{ code: '110115', name: '大兴区' },
{ code: '110116', name: '怀柔区' },
{ code: '110117', name: '平谷区' },
{ code: '110118', name: '密云区' },
{ code: '110119', name: '延庆区' }
]
},
{
code: '500000',
name: '重庆市',
children: [
{ code: '500101', name: '万州区' },
{ code: '500102', name: '涪陵区' },
{ code: '500103', name: '渝中区' },
{ code: '500104', name: '大渡口区' },
{ code: '500105', name: '江北区' },
{ code: '500106', name: '沙坪坝区' },
{ code: '500107', name: '九龙坡区' },
{ code: '500108', name: '南岸区' },
{ code: '500109', name: '北碚区' },
{ code: '500110', name: '綦江区' },
{ code: '500111', name: '大足区' },
{ code: '500112', name: '渝北区' },
{ code: '500113', name: '巴南区' },
{ code: '500114', name: '黔江区' },
{ code: '500115', name: '长寿区' },
{ code: '500116', name: '江津区' },
{ code: '500117', name: '合川区' },
{ code: '500118', name: '永川区' },
{ code: '500119', name: '南川区' },
{ code: '500120', name: '璧山区' },
{ code: '500151', name: '铜梁区' },
{ code: '500152', name: '潼南区' },
{ code: '500153', name: '荣昌区' },
{ code: '500154', name: '开州区' },
{ code: '500155', name: '梁平区' },
{ code: '500156', name: '武隆区' },
{ code: '500229', name: '城口县' },
{ code: '500230', name: '丰都县' },
{ code: '500231', name: '垫江县' },
{ code: '500233', name: '忠县' },
{ code: '500235', name: '云阳县' },
{ code: '500236', name: '奉节县' },
{ code: '500237', name: '巫山县' },
{ code: '500238', name: '巫溪县' },
{ code: '500240', name: '石柱土家族自治县' },
{ code: '500241', name: '秀山土家族苗族自治县' },
{ code: '500242', name: '酉阳土家族苗族自治县' },
{ code: '500243', name: '彭水苗族土家族自治县' }
]
}
// ...
];parseCode(areaCode, options?)
- areaCode <string> 地区码
- options <object> 配置项
- options.dataSource <{ code: string; name: string; }[]> 自定义数据源,默认 data
- options.ignoreCrownCountryCityName <boolean> 是否忽略直辖市或直辖县的市级名称,默认 false
解析地区码,返回一个元组 [省,市,区]
parseCode('410102'); // => [{ code: '410000', name: '河南省' }, { code: '410100', name: '郑州市' }, { code: '410102', name: '中原区' }];
parseCode('410100'); // => [{ code: '410000', name: '河南省' }, { code: '410100', name: '郑州市' }, null];
parseCode('410000'); // => [{ code: '410000', name: '河南省' }, null, null];
parseCode('000000'); // => [null, null, null];注意,以下数据修正
1. 直辖市补充市级数据
- 北京市(110000)
- 北京市(110100)
- 天津市(120000)
- 天津市(120100)
- 上海市(310000)
- 上海市(310100)
- 重庆市(500000)
- 重庆市(500100)
- 县(500200)
2. 部分省补充县级行政区划
- 海南省(460000)
- 省直辖县级行政区划(469000)
- 新疆维吾尔自治区(650000)
- 自治区直辖县级行政区划(659000)
- 河南省(410000)
- 省直辖县级行政区划(419000)
- 湖北省(420000)
- 省直辖县级行政区划(429000)
3. 海南省三沙市补充区级数据
- 海南省(460000)
- 三沙市(460300)
- 西沙群岛(460321)
- 南沙群岛(460322)
- 中沙群岛的岛礁及其海域(460323)
- 三沙市(460300)
4. 以下几个特殊地级市,属于“不设区的市”
- 广东省东莞市(441900)
- 广东省中山市(442000)
- 甘肃省嘉峪关市(620200)
- 海南省儋州市(460400)
更多数据格式
如果在客户端中使用,并且没有用到全部数据,建议保存对应数据到本地。比如只用到省市级联数据,将
pc.json保存本地即可。
| 文件 | 数据格式 | 描述 | | ---------------- | ------------------------------ | ---------------- | | pca.json | Array<{code, name, children?}> | 省/市/区级联数据 | | pc.json | Array<{code, name, children?}> | 省/市级联数据 | | data.json | Array<{code, name}> | 全部数据 | | provinces.json | Array<{code, name}> | 省份数据 | | cities.json | Array<{code, name}> | 市级数据 | | areas.json | Array<{code, name}> | 区级数据 |
