繁体   English   中英

如何在 Python 中获取多边形中所有点的列表?

[英]how to get list of all points in a multipolygon in Python?

我有一个csv文件,其中包含一个包含 NYC multipolygon面表示的列。 意思是,纽约市被分成多个多边形,这些多边形存储在我拥有的csv文件中名为the_geom的列中。

我的问题是如何获得每个multipolygon中所有可能点的列表? 到目前为止我所做的只是在multipolygon中选择一个随机点,然后检查所选点是否包含在multipolygon中,这样做的代码是:

multipolygon = shapely.wkt.loads(row['the_geom'])
minx, miny, maxx, maxy = multipolygon.bounds

pnt1 = Point(random.uniform(minx, maxx), random.uniform(miny, maxy))
while not multipolygon.contains(pnt1):
    pnt1 = Point(random.uniform(minx, maxx), random.uniform(miny, maxy))

如何获取多面体中所有点的multipolygon 我是否应该先将每个multipolygon转换为polygon ,以便获得每个multipolygon中所有可能点的列表?

我已经看到谷歌的解决方案建议使用GeoPandas.explode() ,但我不确定将multipolygon转换为polygon是否是正确的方法。

我想知道什么是获取multipolygon中所有点列表的正确方法,谢谢!

要获取定义构成 MultiPolygon 的多边形边界的所有点,您可以使用MultiPolygon.bounds属性遍历形状,例如:

np.hstack([np.array(g.boundary.xy) for g in multipolygon.geoms])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM