cnregion icon indicating copy to clipboard operation
cnregion copied to clipboard

2009-2023 年中国全国(省、市、县、乡/镇、村/街道)五级行政区域划分数据

cnregion

Test Go version PkgGoDev codecov License

历年统计用区域和城乡划分代码,数据来源于 http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/。 符合国家标准 GB/T 2260 与 GB/T 10114。

从 0.3.0 开始引入了 io/fs 和 embed 两个包,只支持 go1.16 以之后的版本

关于版本号,主版本号代码不兼容性更改,次版本号代码最后一次生成的数据年份,BUG 修正和兼容性的功能增加则增加修订版本号。

v, err := cnregion.LoadFile("./data/regions.db", "-", 2020)

p := v.Provinces() // 返回所有省列表
cities := p[0].Items() // 返回该省下的所有市
counties := cities[0].Items() // 返回该市下的所有县
towns := counties[0].Items() // 返回所有镇
villages := towns[0].Items() // 所有村和街道信息

d := v.Districts() // 按以前的行政大区进行划分
provinces := d[0].Items() // 该大区下的所有省份

list := v.Search(&SearchOptions{Text: ""温州"}) // 按索地名中带温州的区域列表

对采集的数据进行了一定的加工,以减少文件的体积,文件保存在 ./data/regions.db 中。 你可以直接使用 go1.16 中的 //go:embed 嵌入到代码中,也可以采用 cnregion.LoadFile 从外部加载。

安装

go get github.com/issue9/cnregion

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。