Skip to content

Commit 1205082

Browse files
committed
[Processing] Make DeleteHoles algorithm NULL geometry aware
1 parent cd10c6c commit 1205082

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

python/plugins/processing/algs/qgis/DeleteHoles.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,21 @@ def processAlgorithm(self, progress):
6060
for count, f in enumerate(features):
6161

6262
geometry = f.geometry()
63-
if geometry.isMultipart():
64-
multi_polygon = geometry.asMultiPolygon()
65-
for polygon in multi_polygon:
63+
if geometry:
64+
if geometry.isMultipart():
65+
multi_polygon = geometry.asMultiPolygon()
66+
for polygon in multi_polygon:
67+
for ring in polygon[1:]:
68+
polygon.remove(ring)
69+
geometry = QgsGeometry.fromMultiPolygon(multi_polygon)
70+
71+
else:
72+
polygon = geometry.asPolygon()
6673
for ring in polygon[1:]:
6774
polygon.remove(ring)
68-
geometry = QgsGeometry.fromMultiPolygon(multi_polygon)
69-
75+
geometry = QgsGeometry.fromPolygon(polygon)
7076
else:
71-
polygon = geometry.asPolygon()
72-
for ring in polygon[1:]:
73-
polygon.remove(ring)
74-
geometry = QgsGeometry.fromPolygon(polygon)
77+
geometry = QgsGeometry(None)
7578

7679
feat.setGeometry(geometry)
7780
feat.setAttributes(f.attributes())

0 commit comments

Comments
 (0)