From 99f88b312fb8f11a45469df11a40552428642c32 Mon Sep 17 00:00:00 2001 From: Alexander Bruy Date: Sat, 12 May 2012 11:26:22 +0300 Subject: [PATCH] add MultiLineString support to Densify geometries tool (addresses #5577) --- python/plugins/fTools/tools/doSimplify.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/python/plugins/fTools/tools/doSimplify.py b/python/plugins/fTools/tools/doSimplify.py index 465d4cf48a6c..7bd4ca732c40 100644 --- a/python/plugins/fTools/tools/doSimplify.py +++ b/python/plugins/fTools/tools/doSimplify.py @@ -194,17 +194,23 @@ def densify( polyline, pointsNumber ): return output def densifyGeometry( geometry, pointsNumber, isPolygon ): + output = [] if isPolygon: rings = geometry.asPolygon() - output = [] for ring in rings: ring = densify( ring, pointsNumber ) output.append( ring ) return QgsGeometry.fromPolygon( output ) else: - points = geometry.asPolyline() - output = densify( points, pointsNumber ) - return QgsGeometry.fromPolyline( output ) + if geometry.isMultipart(): + lines = geometry.asMultiPolyline() + for points in lines: + output.append( densify( points, pointsNumber ) ) + return QgsGeometry.fromMultiPolyline( output ) + else: + points = geometry.asPolyline() + output = densify( points, pointsNumber ) + return QgsGeometry.fromPolyline( output ) class GeomThread( QThread ): def __init__( self, function, inputLayer, useSelection, tolerance, writeShape, shapePath, shapeEncoding ):