def _convert_to_multipolygon(features: list) -> MultiPolygon:
"""
converts a list of (multi)polygon geometries to one single multipolygon
:param features:
:return:
"""
rings = []
for feature in features:
if isinstance(feature.geometry, MultiPolygon):
rings = rings + [geom for geom in feature.geometry.geoms]
else:
rings = rings + [feature.geometry]
geometry = MultiPolygon(rings)
# Downsample 3D -> 2D
if geometry.has_z:
geometry = shapely.ops.transform(GridService._to_2d, geometry)
wkt2d = geometry.wkt
geom2d = shapely.wkt.loads(wkt2d)
return geom2d
评论列表
文章目录