如何使用Shapely遍历Polygon的顶点为Point对象?
无需NumPy的Shapely顶点转Point遍历方法
可以直接遍历Polygon或LinearRing的coords属性,将每个坐标元组直接转换为Point对象,完全不需要依赖NumPy,步骤更简洁:
from shapely.geometry import Polygon, Point poly = Polygon([Point(0, 0), Point(1, 0), Point(1, 1), Point(0, 1)]) # 用生成器按需转换,节省内存 vertices = (Point(coord) for coord in poly.exterior.coords) for p in vertices: print(p)
如果需要一次性生成所有Point对象的列表,改用列表推导式即可:
vertices = [Point(coord) for coord in poly.exterior.coords]
补充说明
poly.exterior.coords返回的是可迭代的坐标序列,每个元素是(x, y)格式的元组,直接传入Point构造器就能得到对应的Point对象。- 默认情况下
coords会包含闭合的重复顶点(最后一个点和第一个点相同),如果需要去除重复,可改为遍历poly.exterior.coords[:-1]。
内容的提问来源于stack exchange,提问作者Paul Jurczak
相关产品推荐
相关产品推荐

