Python 我可以设置形状多边形中点的顺序吗?
我有一组Python 我可以设置形状多边形中点的顺序吗?,python,gis,shapely,Python,Gis,Shapely,我有一组多边形对象,需要以可重复的方式迭代它们的每一条边。我首选的方法是从边界框左下角的最近点逆时针方向 我可以通过以下方法确保多边形点为逆时针方向: polygon = shapely.geometry.polygon.orient(polygon) 我可以使用以下方法找到我想要的起点: polygon = shapely.geometry.Polygon(...) lower_left = shapely.geometry.Point(bbox[:2]) nearest_pt = min(
多边形
对象,需要以可重复的方式迭代它们的每一条边。我首选的方法是从边界框左下角的最近点逆时针方向
我可以通过以下方法确保多边形点为逆时针方向:
polygon = shapely.geometry.polygon.orient(polygon)
我可以使用以下方法找到我想要的起点:
polygon = shapely.geometry.Polygon(...)
lower_left = shapely.geometry.Point(bbox[:2])
nearest_pt = min(self.polygon.exterior.coords,
key=lambda x: shapely.geometry.Point(x).distance(lower_left))
我的问题是如何使
多边形的线性化
对象从该角开始?这是可行的,但可能不是很有效
perimeter = polygon.exterior.coords
new_coords = []
first_vertex = nearest_pt # as found in the question above
two_tours = itertools.chain(perimeter, perimeter)
for v in two_tours:
if shapely.geometry.Point(v) == first_vertex:
new_coords.append(v)
while len(new_coords) < len(perimeter):
new_coords.append(two_tours.next())
break
polygon = shapely.geometry.Polygon(new_coords)
周长=polygon.external.coords
新坐标=[]
第一个顶点=最近的顶点,如上述问题所示
两次巡回=itertools.chain(周长,周长)
对于两次巡回演出中的v:
如果shapely.geometry.Point(v)=第一个顶点:
新增(五)
而len(新坐标)