0.6.0 • Published 7 months ago

@aurouscia/china-areas v0.6.0

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

中国大陆地区行政区划数据

数据来源

民政部官网,上次更新于2025-04-25

安装

npm install @aurouscia/china-areas

数据结构约定

  • 直辖市下的市、区、县(例如上海市-静安区),均为该直辖市的直接子级(没有中间的“虚拟地级”)
  • 省直辖县(例如湖北省-仙桃市),均为所属省的直接子级(没有中间的“虚拟地级”)
  • 缺少港澳台地区的数据(仅有省级元素,没有子级)

json使用

/dist/json目录下为json文件,有扁平的和树状结构的两种版本,两种版本各有一个.min.json压缩版。

  • 扁平版本
    • code为六位行政区划代码
    • name为行政区划名称
  • 树状版本:若有子级,则有children属性为子级数组,否则没有children属性。
  • 压缩版:重命名了属性code -> cname -> nchildren -> d,且没有空格和换行符。

js/ts使用

本包的默认导出对象,即为所有行政区划的数组(扁平的,无树状结构)

import areas from '@aurouscia/china-areas'

其中每个元素均有两个属性:

  • code为六位行政区划代码
  • name为行政区划名称 如果使用ts,可引入该元素的类型定义:
import { Division } from '@aurouscia/china-areas'

如果需要树状结构,可以使用下文介绍的工具函数。

工具函数

import { xxxx } from '@aurouscia/china-areas'

getTopDivisions

获取所有的顶级行政区划,即省、直辖市、自治区

getDivisionChildren

获取指定行政区划代码的所有子级行政区划(错误的或没有子级的会返回空数组) 第二个参数为是否严格匹配(默认为false,即允许有错误)否则会在代码不存在时抛出异常。

getDivisionParent

获取指定行政区划代码的父级行政区划(错误的或没有父级的会返回undefined) 第二个参数为是否严格匹配(默认为false,即允许有错误)否则会在代码不存在时抛出异常。

matchDivisionByCode, matchDivisionByNames

根据行政区划六位代码或名称查找行政区划。
第一个参数为名称数组/代码字符串,第二个参数为是否严格匹配(默认为false,即允许有错误)。

  • 名称:字符串数组,例如['湖北省','武汉市','江岸区']
    • 如果是一般的省-市-区三级,则数组长度最多为3
    • 如果是直辖市、省直辖县、直筒子市,则数组长度最多为2
    • 如果是港澳台地区,则数组长度最多为1
    • 会从高到底匹配,如果某一级没有匹配项,则只会返回到其上一级,例如['湖北省','武昌区']会返回[{name:'湖北省',code:'420000'}]严格匹配时会抛出异常
  • 代码:六位字符串,例如'420102'
    • 如果匹配失败,则会返回空数组
    • 如果代码长度不是六位,则会返回空数组
    • 会从高到低匹配,如果某一级没有匹配项,则只会返回到其上一级,例如'428802'会返回[{name:'湖北省',code:'420000'}]严格匹配时会抛出异常
  • 返回值(如果没有抛出异常):从高到低的区划对象数组
    • 长度为3:[{省}, {市}, {区}]
    • 长度为2:[{省}, {市/省直辖县}][{直辖市}, {区}]
    • 长度为1:[{省}]
    • 长度为0:匹配失败

isFinalDivision

判断指定行政区划代码是否为最终级行政区划(即没有子级)

isExistingCode

判断指定行政区划代码(任意级别均可)是否存在

原版数据

raw数据在/dist/raw下,为官网有关页面全选复制(并补充三沙市的两个区的缺失)获得

源码

源代码中不包含数据,只包含生成器,如果需要: 1. 按照generator/source/README.md中的说明准备数据源(必须) 2. 运行npm run genTs生成包含数据的代码(必须) 3. 运行npm run genJson生成json文件 4. 运行npm test运行单元测试 5. 运行npm run build打包

发现错误/过期

如果发现错误或过期,请在gitee上提issue,我会及时更新
https://gitee.com/au114514/au-npm-pkgs

许可证

MIT

0.6.0

7 months ago

0.5.0

7 months ago

0.4.0

7 months ago

0.2.0

7 months ago

0.1.1

7 months ago

0.0.1

7 months ago

0.0.0

7 months ago