如何获取/提取定义shapely
多边形的点?谢谢!
形状整齐的多边形的示例
from shapely.geometry import Polygon
# Create polygon from lists of points
x = [list of x vals]
y = [list of y vals]
polygon = Polygon(x,y)
发布于 2013-12-10 00:56:05
因此,我发现诀窍是使用Polygon
类方法的组合来实现这一点。
如果您需要测地线坐标,则需要将这些坐标转换回WGS84 (通过pyproj
、matplotlib
的basemap
或其他方式)。
from shapely.geometry import Polygon
#Create polygon from lists of points
x = [list of x vals]
y = [list of y vals]
some_poly = Polygon(x,y)
# Extract the point values that define the perimeter of the polygon
x, y = some_poly.exterior.coords.xy
发布于 2018-08-09 04:00:49
我花了一段时间才了解到,多边形有一个外部边界,也可能有几个内部边界。我之所以在这里发帖,是因为一些答案没有反映出这种区别,尽管公平地说,最初的帖子并没有使用内部边界的多边形作为示例。
形成外部边界的点排列在CoordinateSequence中,可以通过以下方式获得
polygon.exterior.coords
您可以使用len(polygon.exterior.coords)
找到该对象的长度,并可以像列表一样对该对象进行索引。例如,要获取第一个顶点,请使用polygon.exterior.coords[0]
。请注意,第一个点和最后一个点是相同的;如果您想要一个由不包含重复点的顶点组成的列表,请使用polygon.exterior.coords[:-1]
。
可以将CoordinateSequence (包括重复顶点)转化为点列表,如下所示:
list(polygon.exterior.coords)
类似地,由形成第一个内部边界的顶点组成的CoordinateSequence被获取为polygon.interiors[0].coords
,并且这些顶点的列表(没有重复的点)被获取为polygon.interiors[0].coords[:-1]
。
发布于 2016-11-16 19:34:14
您可以使用shapely mapping
函数:
>>> from shapely.geometry import Polygon, mapping
>>> sh_polygon = Polygon(((0,0), (1,1), (0,1)))
>>> mapping(sh_polygon)
{'type': 'Polygon', 'coordinates': (((0.0, 0.0), (1.0, 1.0), (0.0, 1.0), (0.0, 0.0)),)}
https://stackoverflow.com/questions/20474549
复制相似问题