#gis #polylabel

polylabel-mini

[polylabel-rs的分支] Polylabel算法的Rust实现,用于寻找最佳多边形标签位置

1个不稳定版本

使用旧的Rust 2015

0.1.0 2018年9月19日

#216 in 地理空间

44 每月下载量

MIT 许可证

20KB
399

polylabel-mini

这是一个polylabel算法的最小实现,用于f64多边形(因为在GIS应用程序中通常需要这样处理,单精度太不精确)。原始代码可以在以下位置找到:https://github.com/urschrei/polylabel-rs

分支这个库的原因是polylabel-rs需要18 (!)个依赖项来实现一个只有50行长的算法。这导致了编译时间的大幅增加。

是的,这从技术上讲是一个复制粘贴的实现,但对我而言,我只使用了polylabel()函数,没有其他。导入18个极其泛型的依赖项来处理50行代码根本就不合理。

这个crate没有依赖项,并应用了特殊的优化,例如计算边界矩形不需要复制点。

以下函数是从geo crate中复制的

- Polygon::contains(&Point)
- Point::euclidean_distance(&Polygon)
- Polygon::area()
- Polygon::centroid()
- Polygon::bounding_rect()

如你所见,没有任何东西能证明需要18个依赖项。代码是在master#fc942fab47ca29cbc54597448b7af48d7cad109c分支上复制的,并且不时进行更新。

geopolylabel的许可证都是MIT,因此这个仓库也是MIT许可证。我不想违反任何许可证限制,我只是想减少依赖项。所有代码都在MIT许可证下,由Stefan Hügel和Corey Farwell授权。

没有运行时依赖