2个版本
0.1.1 | 2022年2月17日 |
---|---|
0.1.0 | 2022年2月17日 |
#234 in Geospatial
2,722 下载量/月
用于 geocode-csv
40MB
609K SLoC
libpostal-rust
: 另一个 libpostal
封装器
这是对libpostal库的另一套高级绑定。还有其他几个针对此库的Rust封装器。这个封装器包括以下特性,这些特性可能在其他地方不可用
- 不需要安装
libpostal
。 - 支持构建静态Rust二进制文件。
- 支持线程安全地初始化
libpostal
。 - 支持从
x86_64 Mac
交叉编译到aarch64(Apple Silicon),用于GitHub CI构建器和类似设置。
lib.rs
:
libpostal-rust
: 一个围绕 libpostal
的高级、线程安全的封装器
开源C库libpostal
提供了使用外部语言模型解析和归一化全球地址的支持。我们提供了一个围绕该库的高级Rust封装器,以便将其链接到主Rust二进制文件中。
请注意,您需要使用libpostal_data
(包含在libpostal
中)来下载和安装约2GB的语言模型数据
sudo libpostal_data download all /usr/local/share/libpostal
完成后,您可以按以下方式解析地址
use libpostal_rust::{ParseAddressOptions, parse_address};
let addr = "781 Franklin Ave Crown Heights Brooklyn NYC NY 11216 USA";
let opt = ParseAddressOptions::default();
let parsed = parse_address(addr, &opt).unwrap();
assert_eq!(parsed.get("state"), Some(&"ny".to_owned()));
您可以使用address-formatter
对OpenCage地址模板的支持,将parsed
转换回格式良好的地址(几乎在世界上任何地方)。