12 releases
0.1.12 | Sep 29, 2024 |
---|---|
0.1.11 | Sep 29, 2024 |
#548 in Database interfaces
Used in r-idcard
24KB
470 lines
根据 中国 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
文件的数据结构如下:
提供 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"
Dependencies
~2MB
~30K SLoC