From eefa7115bf2f34ac052e7d977db89d533f7ea306 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Mon, 7 Nov 2016 09:22:50 +1000 Subject: [PATCH] [processing] Fix invalid geometries made by densify when input geom is null --- .../processing/algs/qgis/DensifyGeometries.py | 12 +++++------- .../algs/qgis/DensifyGeometriesInterval.py | 12 +++++------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/python/plugins/processing/algs/qgis/DensifyGeometries.py b/python/plugins/processing/algs/qgis/DensifyGeometries.py index f5b45f92db7..2ad758de22e 100644 --- a/python/plugins/processing/algs/qgis/DensifyGeometries.py +++ b/python/plugins/processing/algs/qgis/DensifyGeometries.py @@ -72,13 +72,11 @@ class DensifyGeometries(GeoAlgorithm): features = vector.features(layer) total = 100.0 / len(features) for current, f in enumerate(features): - featGeometry = f.geometry() - attrs = f.attributes() - newGeometry = self.densifyGeometry(featGeometry, int(vertices), - isPolygon) - feature = QgsFeature() - feature.setGeometry(newGeometry) - feature.setAttributes(attrs) + feature = f + if feature.hasGeometry(): + new_geometry = self.densifyGeometry(feature.geometry(), int(vertices), + isPolygon) + feature.setGeometry(new_geometry) writer.addFeature(feature) progress.setPercentage(int(current * total)) diff --git a/python/plugins/processing/algs/qgis/DensifyGeometriesInterval.py b/python/plugins/processing/algs/qgis/DensifyGeometriesInterval.py index aaa176e3923..42aa376bbb3 100644 --- a/python/plugins/processing/algs/qgis/DensifyGeometriesInterval.py +++ b/python/plugins/processing/algs/qgis/DensifyGeometriesInterval.py @@ -69,13 +69,11 @@ class DensifyGeometriesInterval(GeoAlgorithm): features = vector.features(layer) total = 100.0 / len(features) for current, f in enumerate(features): - featGeometry = f.geometry() - attrs = f.attributes() - newGeometry = self.densifyGeometry(featGeometry, interval, - isPolygon) - feature = QgsFeature() - feature.setGeometry(newGeometry) - feature.setAttributes(attrs) + feature = f + if feature.hasGeometry(): + new_geometry = self.densifyGeometry(feature.geometry(), interval, + isPolygon) + feature.setGeometry(new_geometry) writer.addFeature(feature) progress.setPercentage(int(current * total))