8次发布

使用旧Rust 2015

0.1.7 2016年9月11日
0.1.6 2016年8月25日
0.1.4 2016年1月28日

#217 in 地理空间

36 每月下载次数
3 个crate中(通过 libits-client)使用

MIT/Apache

11KB
226

rust-navigation

Version

这是一个非常简单的导航crate,旨在与自动驾驶车辆一起使用。它仅提供根据纬度和经度计算两个航点之间所需航向的功能。

提供了两种方法 - 一种精确算法和一种基于简单二维三角学的快速估算方法,该方法不考虑地球是圆的这一事实。后者在计算小区域(如停车场)内两点之间的航向时,计算量更小,精度也足够。

示例

我从科罗拉多州的博尔德出发去丹佛国际机场应该走哪个方向?

let dia     = Location::new(39.8617, -104.6731);
let boulder = Location::new(40.0274, -105.2519);

精确计算

let bearing = boulder.calc_bearing_to(&dia); // results in 110.48

快速计算

let bearing = boulder.estimate_bearing_to(&dia); // results in 110.44

比较两种方法的单元测试样本输出

(40.091306, -105.185494) -> (40.090405, -105.185087): bearing=160.9 estimate=160.9 diff=0.1 [OK]
(40.090801, -105.185641) -> (40.091439, -105.184771): bearing= 46.2 estimate= 46.3 diff=0.1 [OK]
(40.090960, -105.185871) -> (40.090342, -105.184860): bearing=128.6 estimate=128.5 diff=0.1 [OK]
(40.091311, -105.185128) -> (40.090946, -105.184925): bearing=157.0 estimate=156.9 diff=0.1 [OK]
(40.091150, -105.185586) -> (40.091221, -105.185793): bearing=294.2 estimate=294.1 diff=0.1 [OK]

依赖项

~315–540KB