Skip to content

Commit f9e508c

Browse files
committed
[processing] More efficient point count for simplify algorithm
1 parent 73d8544 commit f9e508c

File tree

1 file changed

+2
-27
lines changed

1 file changed

+2
-27
lines changed

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

+2-27
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ def processAlgorithm(self, progress):
7777
for current, f in enumerate(features):
7878
featGeometry = f.geometry()
7979
attrs = f.attributes()
80-
pointsBefore += self.geomVertexCount(featGeometry)
80+
pointsBefore += featGeometry.geometry().nCoordinates()
8181
newGeometry = featGeometry.simplify(tolerance)
82-
pointsAfter += self.geomVertexCount(newGeometry)
82+
pointsAfter += newGeometry.geometry().nCoordinates()
8383
feature = QgsFeature()
8484
feature.setGeometry(newGeometry)
8585
feature.setAttributes(attrs)
@@ -90,28 +90,3 @@ def processAlgorithm(self, progress):
9090

9191
ProcessingLog.addToLog(ProcessingLog.LOG_INFO,
9292
self.tr('Simplify: Input geometries have been simplified from %s to %s points' % (pointsBefore, pointsAfter)))
93-
94-
def geomVertexCount(self, geometry):
95-
geomType = geometry.type()
96-
97-
if geomType == QgsWkbTypes.LineGeometry:
98-
if geometry.isMultipart():
99-
pointsList = geometry.asMultiPolyline()
100-
points = sum(pointsList, [])
101-
else:
102-
points = geometry.asPolyline()
103-
return len(points)
104-
elif geomType == QgsWkbTypes.PolygonGeometry:
105-
if geometry.isMultipart():
106-
polylinesList = geometry.asMultiPolygon()
107-
polylines = sum(polylinesList, [])
108-
else:
109-
polylines = geometry.asPolygon()
110-
111-
points = []
112-
for l in polylines:
113-
points.extend(l)
114-
115-
return len(points)
116-
else:
117-
return None

0 commit comments

Comments
 (0)