将 MultiPolygons 和 Polygons 列表转换为单个 MultiPolygon
Convert list of MultiPolygons and Polygons to a single MultiPolygon
如何从 MultiPolygon 和 Polygon 对象列表中以通用方式创建 MultiPolygon?
a = MultiPolygon([Polygon([(0, 0), (1, 1), (1, 0)])])
b = Polygon([(0, 0), (2, 1), (1, 0)])
我希望执行产生以下对象的操作:
MultiPolygon([Polygon([(0, 0), (1, 1), (1, 0)]) , Polygon([(0, 0), (2, 1), (1, 0)])])
我不想创建联合,我只想迭代所有多边形。
Shapely 中没有可以根据多边形和 MultiPolygon
对象的列表创建多边形列表的功能。但是您可以为此目的编写一个简单的 generator function:
from shapely.geometry import MultiPolygon, Polygon
a = MultiPolygon([Polygon([(0, 0), (1, 1), (1, 0)])])
b = Polygon([(0, 0), (2, 1), (1, 0)])
your_list = [a, b]
def to_polygons(geometries):
for geometry in geometries:
if isinstance(geometry, Polygon):
yield geometry
else:
yield from geometry
result = MultiPolygon(to_polygons(your_list))
print(result.wkt)
# MULTIPOLYGON (((0 0, 1 1, 1 0, 0 0)), ((0 0, 2 1, 1 0, 0 0)))
如何从 MultiPolygon 和 Polygon 对象列表中以通用方式创建 MultiPolygon?
a = MultiPolygon([Polygon([(0, 0), (1, 1), (1, 0)])])
b = Polygon([(0, 0), (2, 1), (1, 0)])
我希望执行产生以下对象的操作:
MultiPolygon([Polygon([(0, 0), (1, 1), (1, 0)]) , Polygon([(0, 0), (2, 1), (1, 0)])])
我不想创建联合,我只想迭代所有多边形。
Shapely 中没有可以根据多边形和 MultiPolygon
对象的列表创建多边形列表的功能。但是您可以为此目的编写一个简单的 generator function:
from shapely.geometry import MultiPolygon, Polygon
a = MultiPolygon([Polygon([(0, 0), (1, 1), (1, 0)])])
b = Polygon([(0, 0), (2, 1), (1, 0)])
your_list = [a, b]
def to_polygons(geometries):
for geometry in geometries:
if isinstance(geometry, Polygon):
yield geometry
else:
yield from geometry
result = MultiPolygon(to_polygons(your_list))
print(result.wkt)
# MULTIPOLYGON (((0 0, 1 1, 1 0, 0 0)), ((0 0, 2 1, 1 0, 0 0)))