83 个版本
0.28.0 | 2024年2月24日 |
---|---|
0.27.0 | 2023年11月14日 |
0.26.0 | 2023年7月13日 |
0.24.1 | 2023年3月23日 |
0.0.4 | 2015年2月7日 |
#3 in 地理空间
180,455 每月下载量
用于 247 个crate(150 个直接使用)
1.5MB
28K SLoC
geo
地理空间基元、算法和实用工具
在 Discord 上聊天或提问
geo
crate 提供了如 Point
、LineString 和
Polygon
等地理空间基元类型,并提供以下算法和操作:
- 面积和质心计算
- 简化和凸包操作
- 欧几里得和哈弗辛距离测量
- 交集检查
- 仿射变换,如旋转和平移
- 所有 DE-9IM 空间谓词,如包含、相交和接触。
有关完整列表,请参阅文档。
这些基元类型还为 Geo
生态系统中的其他功能提供基础,包括
示例
// primitives
use geo::{line_string, polygon};
// algorithms
use geo::ConvexHull;
// An L shape
let poly = polygon![
(x: 0.0, y: 0.0),
(x: 4.0, y: 0.0),
(x: 4.0, y: 1.0),
(x: 1.0, y: 1.0),
(x: 1.0, y: 4.0),
(x: 0.0, y: 4.0),
(x: 0.0, y: 0.0),
];
// Calculate the polygon's convex hull
let hull = poly.convex_hull();
assert_eq!(
hull.exterior(),
&line_string![
(x: 4.0, y: 0.0),
(x: 4.0, y: 1.0),
(x: 1.0, y: 4.0),
(x: 0.0, y: 4.0),
(x: 0.0, y: 0.0),
(x: 4.0, y: 0.0),
]
);
贡献
欢迎贡献!请查看 问题,如果您想添加算法或一些功能,请发起一个 pull request。
许可证
许可协议为以下之一
- Apache License,版本 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可选择。
贡献
除非您明确说明,否则根据 Apache-2.0 许可证定义,您有意提交的工作中的任何贡献都应双重许可,如上所述,不附加任何额外条款或条件。
依赖项
~5–20MB
~211K SLoC