Skip to content

Commit b380a1d

Browse files
committed
Fix Polygon Centroids tool hangs on null geometry (fix #15045)
1 parent c6457a6 commit b380a1d

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

python/plugins/fTools/tools/doGeometry.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -598,22 +598,22 @@ def polygon_centroids(self):
598598
writer = QgsVectorFileWriter(self.myName, self.myEncoding, vprovider.fields(),
599599
QGis.WKBPoint, vprovider.crs())
600600
inFeat = QgsFeature()
601-
outFeat = QgsFeature()
602601
nFeat = vprovider.featureCount()
603602
nElement = 0
604603
self.emit(SIGNAL("runStatus( PyQt_PyObject )"), 0)
605604
self.emit(SIGNAL("runRange( PyQt_PyObject )"), (0, nFeat))
606605
fit = vprovider.getFeatures()
607606
while fit.nextFeature(inFeat):
607+
outFeat = QgsFeature()
608608
nElement += 1
609609
self.emit(SIGNAL("runStatus( PyQt_PyObject )"), nElement)
610-
inGeom = inFeat.geometry()
610+
if inFeat.constGeometry():
611+
inGeom = inFeat.geometry()
612+
outGeom = inGeom.centroid()
613+
outFeat.setGeometry(QgsGeometry(outGeom))
614+
611615
atMap = inFeat.attributes()
612-
outGeom = inGeom.centroid()
613-
if outGeom is None:
614-
return "math_error"
615616
outFeat.setAttributes(atMap)
616-
outFeat.setGeometry(QgsGeometry(outGeom))
617617
writer.addFeature(outFeat)
618618
del writer
619619
return True

0 commit comments

Comments
 (0)