我发现Java 的 JTS 库中的信封类非常方便。信封保存几何的最小和最大坐标,有时也称为边界框。
我想得到一些匀称点的共同包络。在 JTS 中,您可以调用expandToInclude来逐点放大包络。
由于 JTS 作为 GEOS / shapely的蓝图,我期待在 shapely 上有类似的东西,但找不到它(虽然我是图书馆的新手)。我知道自己做这件事不是火箭科学,但我怀疑没有更优雅的方法可以做到这一点。你有什么主意吗?
要创建简单的盒子几何图形,有一个box
函数可以返回一个矩形多边形:
from shapely.geometry import box
# box(minx, miny, maxx, maxy, ccw=True)
b = box(2, 30, 5, 33)
b.wkt # POLYGON ((5 30, 5 33, 2 33, 2 30, 5 30))
b.area # 9.0
不,Shapely 中没有信封类,它依赖于 (minx, miny, maxx, maxy) 元组。如果您想以相同的 JTS 风格进行编程,编写一个封装这样一个元组的信封类将是微不足道的。
另外的选择:
from shapely.geometry import MultiPoint
print MultiPoint(points).bounds