[processing] fixes extract by location alg (fixes #10241)

This commit is contained in:
Salvatore Larosa 2014-05-28 09:14:59 +02:00
parent a3628a6702
commit c0b3e90faa

View File

@ -55,6 +55,10 @@ class ExtractByLocation(GeoAlgorithm):
filename = self.getParameterValue(self.INTERSECT) filename = self.getParameterValue(self.INTERSECT)
selectLayer = dataobjects.getObjectFromUri(filename) selectLayer = dataobjects.getObjectFromUri(filename)
index = vector.spatialindex(layer) index = vector.spatialindex(layer)
output = self.getOutputFromName(self.OUTPUT)
writer = output.getVectorWriter(layer.pendingFields(),
layer.dataProvider().geometryType(), layer.crs())
geom = QgsGeometry() geom = QgsGeometry()
selectedSet = [] selectedSet = []
@ -73,12 +77,8 @@ class ExtractByLocation(GeoAlgorithm):
selectedSet.append(feat.id()) selectedSet.append(feat.id())
progress.setPercentage(int(current * total)) progress.setPercentage(int(current * total))
output = self.getOutputFromName(self.OUTPUT) for i, f in enumerate(vector.features(layer)):
writer = output.getVectorWriter(layer.layer.pendingFields().toList(), if f.id() in selectedSet:
layer.geometryType(), layer.crs()) writer.addFeature(f)
for (i, feat) in enumerate(features):
if feat.id() in selectedSet:
writer.addFeature(feat)
progress.setPercentage(100 * i / float(featureCount)) progress.setPercentage(100 * i / float(featureCount))
del writer del writer