#haversine #distance #earth #geolocation #helper #bearing

haversine-rs

提供了一些辅助函数,用于使用哈弗辛公式计算地球上两点之间的距离

5个不稳定版本

0.3.0 2023年5月22日
0.2.2 2023年5月21日
0.2.1 2023年5月21日
0.2.0 2023年5月21日
0.1.0 2023年5月21日

#181 in Geospatial

Download history 2/week @ 2024-05-15 138/week @ 2024-05-22 20/week @ 2024-05-29 7/week @ 2024-07-24 5/week @ 2024-07-31 79/week @ 2024-08-07

97 每月下载量
3 个crate中(通过 geoprox-core)使用

MIT 许可证

11KB
94 代码行数(不包括注释)

haversine-rs

提供了一些辅助函数,用于使用哈弗辛公式计算地球上两点之间的距离。还可以找到两点之间的方位角,并从给定点以给定距离和方位角获取一个点。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
haversine-rs = "0.3.0"

使用

use haversine_rs::point::Point;
use haversine_rs::units::Unit;
use haversine_rs::distance;
use haversine_rs::bearing;
use haversine_rs::find_point;

fn main() {
    let p1 = Point::new(40.7767644, -73.9761399);
    let p2= Point::new(40.771209, -73.9673991);

    let distance = distance(p1, p2, Unit::Miles);
    let bearing = bearing(p1, p2);

    let p3 = find_point(p1, 1.0, 90.0, Unit::Miles);

    println!("Distance: {} miles", distance);
    println!("Bearing: {} degrees", bearing);
    println!("Point at 1 mile and 90 degrees: {:?}", p3);
}

自定义地球半径

use haversine_rs::point::Point;
use haversine_rs::units::Unit;
use haversine_rs::distance;
use haversine_rs::bearing;
use haversine_rs::find_point;

fn main() {
    let p1 = Point::new(40.7767644, -73.9761399);
    let p2= Point::new(40.771209, -73.9673991);

    let distance = distance(p1, p2, Unit::Custom(3950.0));
    let bearing = bearing(p1, p2);

    let p3 = find_point(p1, 1.0, 90.0, Unit::Custom(3950.0));

    println!("Distance: {} miles", distance);
    println!("Bearing: {} degrees", bearing);
    println!("Point at 1 mile and 90 degrees: {:?}", p3);
}

多个点之间的距离

use haversine_rs::point::Point;
use haversine_rs::units::Unit;
use haversine_rs::distance_vec;

fn main() {
    let p1 = Point::new(40.7767644, -73.9761399);
    let p2 = Point::new(40.773987, -73.971769);
    let p3 = Point::new(40.771209, -73.9673991);

    let distance = distance_vec(vec![point_x, point_y, point_z], Unit::Miles);

    println!("Distance: {} miles", distance);
}

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE 文件。

无运行时依赖