#geolocation #tide #geolib #api #vincenty

vincenty-core

使用Vincenty公式计算两点间的距离

1 个稳定版本

1.0.0 2023年5月17日

#279地理空间

Download history 6/week @ 2024-04-08 96/week @ 2024-04-15 8/week @ 2024-04-22 79/week @ 2024-05-06 18/week @ 2024-05-13 51/week @ 2024-05-20 34/week @ 2024-05-27 40/week @ 2024-06-03 21/week @ 2024-06-10 4/week @ 2024-06-17 23/week @ 2024-06-24 6/week @ 2024-07-01 46/week @ 2024-07-08 62/week @ 2024-07-15 16/week @ 2024-07-22

每月下载量 131
用于 zotgtfs

Apache-2.0

11KB
149

vincenty-core

使用Vincenty公式计算两点间的距离。

概述

此Rust模块提供用于计算在椭球面上由纬度和经度指定的两点之间大地距离的函数。计算基于Vincenty公式,以其高精度而闻名。

功能

  • 高精度:该模块旨在返回最多6位小数的结果。

  • 自定义错误处理:模块使用Rust的Result类型进行错误处理,确保在计算过程中任何问题都能得到优雅且信息丰富的处理。

  • 方便的输入类型:模块提供两个用于距离计算的函数,它们接受不同的输入类型:一个接受 geo_types::geometry::Coord 对象,另一个直接接受 f64 参数。

使用方法

将模块添加到您的Rust项目中,并按以下方式使用

use geo_types::geometry::Coord;
use vincenty_core::{distance_from_coords, distance_from_points};

let x1 = 40.712776;
let y1 = -74.005974;
let x2 = 34.052235;
let y2 = -118.243683;
let coord1 = Coord { x: x1, y: y1 };
let coord2 = Coord { x: x2, y: y2 };

let distance1 = distance_from_coordinates(&coord1, &coord2);
let distance2 = distance_from_points(x1, y1, x2, y2);
assert_eq!(distance1, distance2);

测试

该模块包括主要函数的单元测试。要运行这些测试,请使用以下命令

$ cargo test

限制

请注意,该算法最多执行200次迭代以在指定的阈值 1e-9 内找到结果。如果算法在这些迭代内未能收敛,将返回错误。

贡献

请随意分支此模块,并为任何增强或错误修复提交拉取请求。确保为任何新功能包含单元测试。

许可

此模块可在MIT许可证下使用。

依赖

~1MB
~17K SLoC