From 48900197bc4934d814b5c512e45753caed741568 Mon Sep 17 00:00:00 2001 From: jef Date: Sat, 26 Mar 2011 22:29:20 +0000 Subject: [PATCH] fix #3661 git-svn-id: http://svn.osgeo.org/qgis/trunk@15610 c8812cc2-4d05-0410-92ff-de0c093fc19c --- python/plugins/fTools/tools/doGeometry.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/python/plugins/fTools/tools/doGeometry.py b/python/plugins/fTools/tools/doGeometry.py index c5871b10cc4c..ec4a7a60136e 100755 --- a/python/plugins/fTools/tools/doGeometry.py +++ b/python/plugins/fTools/tools/doGeometry.py @@ -354,8 +354,9 @@ def multi_to_single( self ): allAttrs = vprovider.attributeIndexes() vprovider.select( allAttrs ) fields = vprovider.fields() + geomType = self.multiToSingleGeom(vprovider.geometryType()) writer = QgsVectorFileWriter( self.myName, self.myEncoding, - fields, vprovider.geometryType()-3, vprovider.crs() ) + fields, geomType, vprovider.crs() ) inFeat = QgsFeature() outFeat = QgsFeature() inGeom = QgsGeometry() @@ -901,6 +902,22 @@ def singleToMultiGeom(self, wkbType): except Exception, err: print str(err) + def multiToSingleGeom(self, wkbType): + try: + if wkbType in (QGis.WKBPoint, QGis.WKBMultiPoint, + QGis.WKBPoint25D, QGis.WKBMultiPoint25D): + return QGis.WKBPoint + elif wkbType in (QGis.WKBLineString, QGis.WKBMultiLineString, + QGis.WKBMultiLineString25D, QGis.WKBLineString25D): + return QGis.WKBLineString + elif wkbType in (QGis.WKBPolygon, QGis.WKBMultiPolygon, + QGis.WKBMultiPolygon25D, QGis.WKBPolygon25D): + return QGis.WKBPolygon + else: + return QGis.WKBUnknown + except Exception, err: + print str(err) + def extractAsSingle( self, geom ): multi_geom = QgsGeometry() temp_geom = []