5个版本 (3个破坏性更新)
使用旧的Rust 2015
0.4.0 | 2020年9月14日 |
---|---|
0.3.0 | 2019年9月20日 |
0.2.0 | 2018年4月12日 |
0.1.1 | 2018年1月28日 |
0.1.0 | 2018年1月28日 |
#129 in 地理空间
每月34次下载
18KB
131 行
flat-projection
通过平面投影快速进行测地距离近似
使用 FlatProjection
结构可以将地理坐标从 WGS84 投影到笛卡尔坐标系中。在投影形式中,近似距离和方位角计算比在球体上要快得多。这些计算的精度对于500公里以内的距离非常精确。
使用方法
extern crate flat_projection;
use flat_projection::FlatProjection;
fn main() {
let (lon1, lat1) = (6.186389, 50.823194);
let (lon2, lat2) = (6.953333, 51.301389);
let proj = FlatProjection::new(51.05);
let p1 = proj.project(lon1, lat1);
let p2 = proj.project(lon2, lat2);
let distance = p1.distance(&p2);
// -> 75.648 km
}
基准测试
$ cargo bench
distance/flat time: [322.21 ps 323.82 ps 326.41 ps]
distance/haversine time: [12.604 ns 12.831 ns 13.162 ns]
distance/vincenty time: [346.79 ns 348.00 ns 349.61 ns]
根据这些结果,平面表面近似比 Haversine 公式快约40倍。
相关
- cheap-ruler – 在JavaScript中进行的类似计算
- cheap-ruler-cpp – cheap-ruler的C++版本
许可证
该项目根据 MIT许可证 发布。
依赖项
~155KB