首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Shapely中从多边形提取点/坐标

在Shapely中从多边形提取点/坐标
EN

Stack Overflow用户
提问于 2013-12-09 23:40:34
回答 8查看 124K关注 0票数 93

如何获取/提取定义shapely多边形的点?谢谢!

形状整齐的多边形的示例

代码语言:javascript
复制
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)
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-12-10 00:56:05

因此,我发现诀窍是使用Polygon类方法的组合来实现这一点。

如果您需要测地线坐标,则需要将这些坐标转换回WGS84 (通过pyprojmatplotlibbasemap或其他方式)。

代码语言:javascript
复制
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
票数 100
EN

Stack Overflow用户

发布于 2018-08-09 04:00:49

我花了一段时间才了解到,多边形有一个外部边界,也可能有几个内部边界。我之所以在这里发帖,是因为一些答案没有反映出这种区别,尽管公平地说,最初的帖子并没有使用内部边界的多边形作为示例。

形成外部边界的点排列在CoordinateSequence中,可以通过以下方式获得

代码语言:javascript
复制
polygon.exterior.coords

您可以使用len(polygon.exterior.coords)找到该对象的长度,并可以像列表一样对该对象进行索引。例如,要获取第一个顶点,请使用polygon.exterior.coords[0]。请注意,第一个点和最后一个点是相同的;如果您想要一个由不包含重复点的顶点组成的列表,请使用polygon.exterior.coords[:-1]

可以将CoordinateSequence (包括重复顶点)转化为点列表,如下所示:

代码语言:javascript
复制
list(polygon.exterior.coords)

类似地,由形成第一个内部边界的顶点组成的CoordinateSequence被获取为polygon.interiors[0].coords,并且这些顶点的列表(没有重复的点)被获取为polygon.interiors[0].coords[:-1]

票数 51
EN

Stack Overflow用户

发布于 2016-11-16 19:34:14

您可以使用shapely mapping函数:

代码语言:javascript
复制
>>> 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)),)}
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20474549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档