From c0b3e90faaa522c53ddeb0f12d74f9d5b42eddb3 Mon Sep 17 00:00:00 2001 From: Salvatore Larosa Date: Wed, 28 May 2014 09:14:59 +0200 Subject: [PATCH] [processing] fixes extract by location alg (fixes #10241) --- .../algs/qgis/ftools/ExtractByLocation.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/python/plugins/processing/algs/qgis/ftools/ExtractByLocation.py b/python/plugins/processing/algs/qgis/ftools/ExtractByLocation.py index 0902de6cd86..f5cea58e74b 100644 --- a/python/plugins/processing/algs/qgis/ftools/ExtractByLocation.py +++ b/python/plugins/processing/algs/qgis/ftools/ExtractByLocation.py @@ -55,6 +55,10 @@ class ExtractByLocation(GeoAlgorithm): filename = self.getParameterValue(self.INTERSECT) selectLayer = dataobjects.getObjectFromUri(filename) index = vector.spatialindex(layer) + + output = self.getOutputFromName(self.OUTPUT) + writer = output.getVectorWriter(layer.pendingFields(), + layer.dataProvider().geometryType(), layer.crs()) geom = QgsGeometry() selectedSet = [] @@ -73,12 +77,8 @@ class ExtractByLocation(GeoAlgorithm): selectedSet.append(feat.id()) progress.setPercentage(int(current * total)) - output = self.getOutputFromName(self.OUTPUT) - writer = output.getVectorWriter(layer.layer.pendingFields().toList(), - layer.geometryType(), layer.crs()) - - for (i, feat) in enumerate(features): - if feat.id() in selectedSet: - writer.addFeature(feat) + for i, f in enumerate(vector.features(layer)): + if f.id() in selectedSet: + writer.addFeature(f) progress.setPercentage(100 * i / float(featureCount)) del writer