[Processing] Make DeleteHoles algorithm NULL geometry aware

This commit is contained in:
Matthias Kuhn 2016-02-03 15:04:30 +01:00
parent cd10c6c88e
commit 1205082269

View File

@ -60,18 +60,21 @@ class DeleteHoles(GeoAlgorithm):
for count, f in enumerate(features):
geometry = f.geometry()
if geometry.isMultipart():
multi_polygon = geometry.asMultiPolygon()
for polygon in multi_polygon:
if geometry:
if geometry.isMultipart():
multi_polygon = geometry.asMultiPolygon()
for polygon in multi_polygon:
for ring in polygon[1:]:
polygon.remove(ring)
geometry = QgsGeometry.fromMultiPolygon(multi_polygon)
else:
polygon = geometry.asPolygon()
for ring in polygon[1:]:
polygon.remove(ring)
geometry = QgsGeometry.fromMultiPolygon(multi_polygon)
geometry = QgsGeometry.fromPolygon(polygon)
else:
polygon = geometry.asPolygon()
for ring in polygon[1:]:
polygon.remove(ring)
geometry = QgsGeometry.fromPolygon(polygon)
geometry = QgsGeometry(None)
feat.setGeometry(geometry)
feat.setAttributes(f.attributes())