#approximation #distance #geodesic #projection #flat #system #calculations

flat_projection

通过平面投影快速进行测地距离近似

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次下载

MIT 许可证

18KB
131

flat-projection

Build Status

通过平面投影快速进行测地距离近似

使用 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倍。

许可证

该项目根据 MIT许可证 发布。

依赖项

~155KB