28 个版本
0.7.13 | 2024年2月24日 |
---|---|
0.7.12 | 2023年11月14日 |
0.7.11 | 2023年7月13日 |
0.7.9 | 2023年3月7日 |
0.1.1 | 2018年5月15日 |
#100 in 地理空间
198,600 每月下载量
用于 375 个 crate(147 个直接使用)
195KB
3.5K 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 许可证 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义的,您有意提交以包含在作品中的任何贡献,应按上述方式双许可,不附加任何额外条款或条件。
依赖项
~0.5–1MB
~20K SLoC