From 2607535b3f2dd8438f2e0ee0c17d2fb8f4faf1f5 Mon Sep 17 00:00:00 2001 From: Alexander Bruy Date: Sat, 12 May 2012 14:04:03 +0300 Subject: [PATCH] also add MultiPolygon support in Densify geometry --- python/plugins/fTools/tools/doSimplify.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/python/plugins/fTools/tools/doSimplify.py b/python/plugins/fTools/tools/doSimplify.py index 7bd4ca732c4..62824197d59 100644 --- a/python/plugins/fTools/tools/doSimplify.py +++ b/python/plugins/fTools/tools/doSimplify.py @@ -196,11 +196,19 @@ def densify( polyline, pointsNumber ): def densifyGeometry( geometry, pointsNumber, isPolygon ): output = [] if isPolygon: - rings = geometry.asPolygon() - for ring in rings: - ring = densify( ring, pointsNumber ) - output.append( ring ) - return QgsGeometry.fromPolygon( output ) + if geometry.isMultipart(): + polygons = geometry.asMultiPolygon() + for poly in polygons: + p = [] + for ring in poly: + p.append( densify( ring, pointsNumber ) ) + output.append( p ) + return QgsGeometry.fromMultiPolygon( output ) + else: + rings = geometry.asPolygon() + for ring in rings: + output.append( densify( ring, pointsNumber ) ) + return QgsGeometry.fromPolygon( output ) else: if geometry.isMultipart(): lines = geometry.asMultiPolyline()