5个版本 (3个重大更新)
0.4.1 | 2024年3月25日 |
---|---|
0.4.0 | 2024年3月24日 |
0.3.0 | 2024年3月24日 |
0.2.0 | 2024年3月23日 |
0.1.0 | 2024年3月23日 |
#105 in 地理空间
48KB
973 行
GeoRust
使用GeoNames数据集进行地理编码和反向地理编码的Rust库。
用法
运行
cargo add geo_rust
然后你可以像这样使用库
use geo_rust::{GeoLocation, Country, get_postal_data, get_nearest_postcode};
fn main() {
let geonames_data = get_postal_data(Country::All);
let location = GeoLocation {
latitude: 51.7923246977375,
longitude: 0.629834723775309,
};
let nearest_postcode = get_nearest_postcode(location, &geonames_data).unwrap();
println!("Nearest postcode: {}", nearest_postcode.postal_code);
}
use geo_rust::{GeoLocation, Country, get_gazetteer_data, get_nearest_place};
fn main() {
let geonames_data = get_gazetteer_data(Country::GreatBritain);
let location = GeoLocation {
latitude: 51.7923246977375,
longitude: 0.629834723775309,
};
let nearest_place = get_nearest_place(location, &geonames_data).unwrap();
println!("Nearest place: {}", nearest_place.name);
}
文档可在docs.rs找到
功能
- 计算两个位置之间的哈夫曼距离
- 获取一个位置最近的邮编
- 获取邮编的位置
- 获取某个位置一定半径范围内的所有邮编
- 获取一个位置最近的地方
- 获取地点的位置
- 获取某个位置一定半径范围内的所有地点
- 获取某个位置一定半径范围内的所有PostalData结构
配置
库使用缓存目录来存储下载的GeoNames数据。默认情况下,它使用系统临时目录中名为geonames的目录。你可以通过设置环境变量GEOCODER_CACHE_DIR
来覆盖此设置。
要完全禁用缓存,请将环境变量DISABLE_GEOCODER_CACHE
设置为任何值。
请注意,我们鼓励你"成为好邻居"并使用缓存以减轻GeoNames服务器的负载。
贡献
欢迎贡献!请打开一个问题或提交一个pull请求。
依赖项
~9–20MB
~288K SLoC