cnregion

package module
v1.2023.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 28, 2024 License: MIT Imports: 3 Imported by: 1

README

cnregion

Test Go version PkgGoDev codecov License

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

关于版本号,主版本号代码不兼容性更改,次版本号代码最后一次生成的数据年份,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 中。

安装

go get github.com/issue9/cnregion

版权

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

Documentation

Overview

Package cnregion 中国区域划分代码

中国行政区域五级划分代码,包含了省、市、县、乡和村五个级别。 数据规则以及数据来源

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Region

type Region interface {
	ID() string       // 区域的 ID,不包括后缀 0 和上一级的 ID
	FullID() string   // 区域的 ID,包括后缀的 0 以及上一级的 ID,长度为 12
	Name() string     // 区域的名称
	FullName() string // 区域的全称,包括上一级的名称
	Items() []Region  // 子项
	Versions() []int  // 支持的年份版本
}

Region 表示某个区域的相关信息

type SearchOptions

type SearchOptions = db.Options

SearchOptions 为搜索功能提供的参数

type Version

type Version struct {
	// contains filtered or unexported fields
}

Version 用于描述与特定版本相关的区域数据

func Load

func Load(data []byte, separator string, version ...int) (*Version, error)

Load 加载 data 数据初始化 Version 实例

separator 表示地名全名显示中,上下级之间的分隔符,比如"浙江-温州",可以为空。

func LoadFS added in v0.3.0

func LoadFS(f fs.FS, path, separator string, version ...int) (*Version, error)

LoadFS 从 path 加载数据并初始化 Version 实例

separator 表示地名全名显示中,上下级之间的分隔符,比如"浙江-温州",可以为空。

func LoadFile

func LoadFile(path, separator string, version ...int) (*Version, error)

LoadFile 从 path 加载数据并初始化 Version 实例

separator 表示地名全名显示中,上下级之间的分隔符,比如"浙江-温州",可以为空。

func New

func New(db *db.DB) (*Version, error)

New 返回 Version 实例

func (*Version) Districts

func (v *Version) Districts() []Region

Districts 按行政大区划分

NOTE: 大区划分并不统一,按照各个省份的第一个数字进行划分。

func (*Version) Find

func (v *Version) Find(regionID string) Region

Find 查找指定 ID 所表示的 Region

func (*Version) Provinces

func (v *Version) Provinces() []Region

Provinces 所有的顶级行政区域

func (*Version) Search

func (v *Version) Search(opt *SearchOptions) []Region

Search 简单的搜索功能

Directories

Path Synopsis
cmd
fetch Module
Package db 提供区域数据文件的相关操作
Package db 提供区域数据文件的相关操作
Package id 针对 ID 的一些操作函数
Package id 针对 ID 的一些操作函数
Package version 提供版本的相关信息
Package version 提供版本的相关信息

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL