region-cn

Crates.ioregion-cn
lib.rsregion-cn
version
sourcesrc
created_at2024-09-23 15:51:08.884256
updated_at2024-09-29 17:19:55.315617
descriptionA lib to search chinese region by 6-digit administrative code with trier or search in place.
homepage
repositoryhttps://github.com/bujnlc8/region-cn
max_upload_size
id1384241
Cargo.toml error:TOML parse error at line 22, column 1 | 22 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
(bujnlc8)

documentation

README

Crates.io region-cn

根据 中国 6 位行政区划代码查询地区名称

数据来源于https://www.mca.gov.cn/mzsj/xzqh/2023/202301xzqh.html,是目前官方最新的数据。

数据经过压缩处理,最新的版本可从data/region.dat下载。

由于行政区划经过多次调整,很多区划代码都已废止,但可能还在使用,这种废止的代码在最新的数据是查找不到的,比如110103 北京市崇文区,于 2010 年废止。

因此从https://zh.wikipedia.org/wiki/中华人民共和国行政区划代码整理了历史数据,这可能是全网能找到的最全的记录了,可以从data/region_full.dat下载。

也提供了 MySQL 数据库 SQL 文件供下载 data/region.sql

请务必下载最新的数据文件,最新文件的版本号为2024092911,可以通过get_version方法获取。

region*.dat文件的数据结构如下:

region-code.png

提供 2 种搜索方式,前缀树和文件搜索(in place),可以根据需要进行选择。

使用


use std::path::PathBuf;

use region_cn::region::Region;

pub fn main() {
    let mut region = Region::new(PathBuf::from("data/region.dat"));
    // 直接在region.dat中搜索
    match region.search_with_data("530925") {
        Ok(data) => {
            println!("{:#?}", data);
            assert_eq!(data.name, "云南省临沧市双江拉祜族佤族布朗族傣族自治县");
            assert_eq!(
                data.region_slice,
                vec!["云南省", "临沧市", "双江拉祜族佤族布朗族傣族自治县",]
            );
        }
        Err(e) => eprintln!("{}", e),
    }
    // 通过前缀树来搜索结果
    let result = region.search_with_trie("530925").unwrap();
    assert_eq!(result.name, "云南省临沧市双江拉祜族佤族布朗族傣族自治县");
}

Install

[dependencies]
region-cn = "0.1"
Commit count: 32

cargo fmt