我的 python3 脚本创建了一个变量,其值是形状文件列表,每个形状文件都是一个表示地理区域的多边形geometries_list[<shapefile.Shape at 0x7f060abfae48>, <shapefile.Shape at 0x7f05dcaf1cc0>, <shapefile.Shape at 0x7f060a86b278>, <shapefile.Shape at 0x7f05da470668>]我想“合并”多边形。我尝试了以下代码from functools import reducefrom shapely.geometry import Polygonunion = reduce(lambda x,y: x.union(y), geometries_list) 但它给出了结果:属性错误:“Shape”对象没有属性“并集”我看到另一种方法,它涉及创建一个形状文件编写器对象并连续覆盖列表上的每个多边形 https://gis.stackexchange.com/questions/103033/using-pyshp-to-merge-two-shapefiles 此方法可能有效,但每个覆盖都保存到磁盘
1 回答
智慧大石
TA贡献1946条经验 获得超3个赞
也许值得一提的是,shapely.ops.unary_union是合并形状的更有效方法。
您可以通过对象的 GeoJSON 表示形式将对象转换为对象,并按如下方式合并它们。shapefile.Shapeshapely.Polygon
from shapely.geometry import shape
from shapely.geometry.ops import unary_union
union = unary_union([shape(s.__geo_interface__) for s in geometries_list])
添加回答
举报
0/150
提交
取消