Skip to content

Commit 4890019

Browse files
author
jef
committed
fix #3661
git-svn-id: http://svn.osgeo.org/qgis/trunk@15610 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 8bf2268 commit 4890019

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

python/plugins/fTools/tools/doGeometry.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,8 +354,9 @@ def multi_to_single( self ):
354354
allAttrs = vprovider.attributeIndexes()
355355
vprovider.select( allAttrs )
356356
fields = vprovider.fields()
357+
geomType = self.multiToSingleGeom(vprovider.geometryType())
357358
writer = QgsVectorFileWriter( self.myName, self.myEncoding,
358-
fields, vprovider.geometryType()-3, vprovider.crs() )
359+
fields, geomType, vprovider.crs() )
359360
inFeat = QgsFeature()
360361
outFeat = QgsFeature()
361362
inGeom = QgsGeometry()
@@ -901,6 +902,22 @@ def singleToMultiGeom(self, wkbType):
901902
except Exception, err:
902903
print str(err)
903904

905+
def multiToSingleGeom(self, wkbType):
906+
try:
907+
if wkbType in (QGis.WKBPoint, QGis.WKBMultiPoint,
908+
QGis.WKBPoint25D, QGis.WKBMultiPoint25D):
909+
return QGis.WKBPoint
910+
elif wkbType in (QGis.WKBLineString, QGis.WKBMultiLineString,
911+
QGis.WKBMultiLineString25D, QGis.WKBLineString25D):
912+
return QGis.WKBLineString
913+
elif wkbType in (QGis.WKBPolygon, QGis.WKBMultiPolygon,
914+
QGis.WKBMultiPolygon25D, QGis.WKBPolygon25D):
915+
return QGis.WKBPolygon
916+
else:
917+
return QGis.WKBUnknown
918+
except Exception, err:
919+
print str(err)
920+
904921
def extractAsSingle( self, geom ):
905922
multi_geom = QgsGeometry()
906923
temp_geom = []

0 commit comments

Comments
 (0)