7个版本 (4个重大更新)
0.5.1 | 2022年8月7日 |
---|---|
0.5.0 | 2022年6月10日 |
0.4.1 | 2021年4月5日 |
0.4.0 | 2020年3月19日 |
0.1.0 | 2018年12月1日 |
#383 in 算法
每月下载 28,805次
在 5 个crate中使用了(4个直接使用)
16KB
230 行
geoutils
Geoutils是一个不断发展的crate,提供多种地质计算和实用工具。大多数计算基于Location结构体上的方法。
在docs.rs上找到完整的API参考。
示例
- 使用Vincenty逆公式获取两点之间的距离。
use geoutils::Location;
let berlin = Location::new(52.518611, 13.408056);
let moscow = Location::new(55.751667, 37.617778);
let distance = berlin.distance_to(&moscow).unwrap();
println!("Distance = {}", distance.meters());
- 使用Haversine公式获取两点之间的距离。
use geoutils::Location;
let berlin = Location::new(52.518611, 13.408056);
let moscow = Location::new(55.751667, 37.617778);
let distance = berlin.haversine_distance_to(&moscow);
println!("Distance = {}", distance.meters());
- 获取一系列坐标的中心。
use geoutils::Location;
let berlin = Location::new(52.518611, 13.408056);
let moscow = Location::new(55.751667, 37.617778);
let center = Location::center(&vec![&berlin, &moscow]);
println!("Center {}, {}", center.latitude(), center.longitude());
- 检查一个点是否在另一个点的特定半径内。
use geoutils::{Location, Distance};
let berlin = Location::new(52.518611, 13.408056);
let moscow = Location::new(55.751667, 37.617778);
let is_in_radius = berlin.is_in_circle(&moscow, Distance::from_meters(2000.0)).unwrap();
println!("Is Berlin in 2000m of Moscow? {}", is_in_radius);
许可
Apache-2.0
依赖关系
~175KB