Skip to content

Commit bb93600

Browse files
author
Piotr Pociask
committed
[Processing]Concave Hull - dissolve bug is fixed so taking last feature
is not necessary
1 parent ebbb0b3 commit bb93600

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,11 @@ def defineCharacteristics(self):
5050
self.group = 'Vector geometry tools'
5151
self.addParameter(ParameterVector(ConcaveHull.INPUT, 'Input point layer',
5252
[ParameterVector.VECTOR_TYPE_POINT]))
53-
self.addParameter(ParameterNumber(self.ALPHA, 'Threshold (0-1, where 1 is equivalent with Convex Hull)', 0,
54-
1, 0.3))
53+
self.addParameter(ParameterNumber(self.ALPHA,
54+
'Threshold (0-1, where 1 is equivalent with Convex Hull)', 0, 1, 0.3))
5555
self.addParameter(ParameterBoolean(self.HOLES, 'Allow holes', True))
56-
self.addParameter(ParameterBoolean(self.NO_MULTIGEOMETRY, 'Split multipart geometry into singleparts geometries', False))
56+
self.addParameter(ParameterBoolean(self.NO_MULTIGEOMETRY,
57+
'Split multipart geometry into singleparts geometries', False))
5758
self.addOutput(OutputVector(ConcaveHull.OUTPUT, 'Convex hull'))
5859

5960
def processAlgorithm(self, progress):
@@ -96,18 +97,17 @@ def processAlgorithm(self, progress):
9697
delaunay_layer.commitChanges()
9798
#dissolve all Delaunay triangles
9899
progress.setText('Dissolving Delaunay triangles ...')
99-
dissolved = processing.runalg("qgis:dissolve", delaunay_layer, True, '', None)['OUTPUT']
100+
dissolved = processing.runalg("qgis:dissolve", delaunay_layer,
101+
True, '', None)['OUTPUT']
100102
dissolved_layer = processing.getObject(dissolved)
101-
#Beacause of dissolve bug we must take only last polygon
102-
count = dissolved_layer.featureCount()
103+
#save result
104+
progress.setText('Saving data ...')
103105
feat = QgsFeature()
104-
dissolved_layer.getFeatures(QgsFeatureRequest().setFilterFid(count-1)).nextFeature(feat)
106+
dissolved_layer.getFeatures(QgsFeatureRequest().setFilterFid(0)).nextFeature(feat)
105107
writer = self.getOutputFromName(
106108
self.OUTPUT).getVectorWriter(layer.pendingFields().toList(),
107109
QGis.WKBPolygon, layer.crs())
108-
#save result
109-
progress.setText('Saving data ...')
110-
geom = feat.geometry()
110+
geom = feat.geometry()
111111
if no_multigeom and geom.isMultipart():
112112
#only singlepart geometries are allowed
113113
geom_list = geom.asMultiPolygon()
@@ -122,7 +122,7 @@ def processAlgorithm(self, progress):
122122
single_feature.setGeometry(single_geom)
123123
writer.addFeature(single_feature)
124124
else:
125-
#multipart geomtries are allowed
125+
#multipart geometries are allowed
126126
if not holes:
127127
#delete holes
128128
deleted = True

0 commit comments

Comments
 (0)