dont clean geometry if it would create a multipolygon

This commit is contained in:
Laura Klünder 2016-11-28 15:46:25 +01:00
parent edd1af432c
commit 122d7b71f0

View file

@ -50,6 +50,9 @@ def round_coordinates(data):
def clean_geometry(geometry): def clean_geometry(geometry):
"""
if the given geometry is a Polygon and invalid, try to make it valid if it results in a Polygon (not MultiPolygon)
"""
if geometry.is_valid: if geometry.is_valid:
return geometry return geometry
@ -58,7 +61,7 @@ def clean_geometry(geometry):
for interior in geometry.interiors: for interior in geometry.interiors:
p = p.difference(Polygon(list(interior.coords))) p = p.difference(Polygon(list(interior.coords)))
if p.is_valid: if isinstance(p, Polygon) and p.is_valid:
return p return p
return geometry return geometry