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

Download history 44562/week @ 2024-04-07 45601/week @ 2024-04-14 42707/week @ 2024-04-21 46594/week @ 2024-04-28 49536/week @ 2024-05-05 52583/week @ 2024-05-12 70396/week @ 2024-05-19 60060/week @ 2024-05-26 66646/week @ 2024-06-02 69128/week @ 2024-06-09 66548/week @ 2024-06-16 72004/week @ 2024-06-23 55919/week @ 2024-06-30 48288/week @ 2024-07-07 44440/week @ 2024-07-14 47023/week @ 2024-07-21

198,600 每月下载量
用于 375 个 crate(147 个直接使用)

MIT/Apache

195KB
3.5K 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许可证定义的,您有意提交以包含在作品中的任何贡献,应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~0.5–1MB
~20K SLoC