1个不稳定版本
使用旧的Rust 2015
0.1.0 | 2018年9月19日 |
---|
#216 in 地理空间
44 每月下载量
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
分支上复制的,并且不时进行更新。
geo
和polylabel
的许可证都是MIT,因此这个仓库也是MIT许可证。我不想违反任何许可证限制,我只是想减少依赖项。所有代码都在MIT许可证下,由Stefan Hügel和Corey Farwell授权。