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 地理空间

Download history 41300/week @ 2024-04-22 45221/week @ 2024-04-29 49321/week @ 2024-05-06 49979/week @ 2024-05-13 70075/week @ 2024-05-20 57780/week @ 2024-05-27 65809/week @ 2024-06-03 66643/week @ 2024-06-10 64231/week @ 2024-06-17 66346/week @ 2024-06-24 49649/week @ 2024-07-01 44152/week @ 2024-07-08 41322/week @ 2024-07-15 41553/week @ 2024-07-22 49322/week @ 2024-07-29 46225/week @ 2024-08-05

180,455 每月下载量
用于 247 个crate(150 个直接使用)

MIT/Apache

1.5MB
28K SLoC

geo

geo on Crates.io Coverage Status Documentation Discord

geo

地理空间基元、算法和实用工具

Discord 上聊天或提问

geo crate 提供了如 PointLineStringPolygon 等地理空间基元类型,并提供以下算法和操作:

  • 面积和质心计算
  • 简化和凸包操作
  • 欧几里得和哈弗辛距离测量
  • 交集检查
  • 仿射变换,如旋转和平移
  • 所有 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 许可证定义,您有意提交的工作中的任何贡献都应双重许可,如上所述,不附加任何额外条款或条件。

依赖项

~5–20MB
~211K SLoC