4
如何修改现有的多边形?首先我想在它的外部添加一个Point。身材匀称:添加新的点,已有的多边形
poly = Polygon([(0, 0), (1, 1), (1, 0)])
我一直在寻找这样的事情:
poly.append_at(idx=3, Point(1, -1))
但我不能找到这个产品的,甚至类似的方法。
感谢
如何修改现有的多边形?首先我想在它的外部添加一个Point。身材匀称:添加新的点,已有的多边形
poly = Polygon([(0, 0), (1, 1), (1, 0)])
我一直在寻找这样的事情:
poly.append_at(idx=3, Point(1, -1))
但我不能找到这个产品的,甚至类似的方法。
感谢
它没有任何意义从Polygon
的外部添加或删除点,因为你要重新计算poly.area
,poly.length
等反正。相反,从旧的多边形的坐标创建一个新的Polygon
实例:
coords = poly.exterior.coords[:]
coords[1] = (2.0, 6.0) # coordinate to change
new_poly = Polygon(coords)
注意,这不poly.interior
占点。
添加了一个坐标切片opp'[:]'使您的示例工作 –
@MikeToews:重新评论下面的内容(现在可能会被删除) - 我明白“不可变的”,但文档中的下一个语句“父特征是可变的,因为它们可以被分配新的坐标序列。“这就是我想要做的,分配一个新的序列。对于我所知道的,一个新的坐标序列**的分配可能已经触发了面积,质心等的重新计算。所以我认为这个文档在这一点上有点误导。 – subnivean
@subnivean同意了,这本手册中的内容不清楚;看到https://github.com/Toblerity/Shapely/issues/38 –