Skip to content

Commit 3d72b09

Browse files
committedSep 14, 2016
partially revert d2189ac
1 parent d2189ac commit 3d72b09

File tree

1 file changed

+21
-22
lines changed

1 file changed

+21
-22
lines changed
 

‎python/plugins/processing/algs/qgis/SinglePartsToMultiparts.py

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
from qgis.PyQt.QtGui import QIcon
3131

32-
from qgis.core import Qgis, QgsFeature, QgsGeometry, QgsWkbTypes
32+
from qgis.core import QGis, QgsFeature, QgsGeometry
3333

3434
from processing.core.GeoAlgorithm import GeoAlgorithm
3535
from processing.core.GeoAlgorithmExecutionException import GeoAlgorithmExecutionException
@@ -67,7 +67,7 @@ def processAlgorithm(self, progress):
6767
geomType = self.singleToMultiGeom(layer.wkbType())
6868

6969
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
70-
layer.fields().toList(), geomType, layer.crs())
70+
layer.pendingFields().toList(), geomType, layer.crs())
7171

7272
inFeat = QgsFeature()
7373
outFeat = QgsFeature()
@@ -92,7 +92,7 @@ def processAlgorithm(self, progress):
9292
if first:
9393
attrs = atMap
9494
first = False
95-
inGeom = inFeat.geometry()
95+
inGeom = QgsGeometry(inFeat.geometry())
9696
vType = inGeom.type()
9797
feature_list = self.extractAsMulti(inGeom)
9898
multi_feature.extend(feature_list)
@@ -108,35 +108,34 @@ def processAlgorithm(self, progress):
108108

109109
del writer
110110
else:
111-
raise GeoAlgorithmExecutionException(
112-
self.tr('At least two features must have same attribute value! Please choose another field...'))
111+
raise GeoAlgorithmExecutionException(self.tr('Invalid unique ID field'))
113112

114113
def singleToMultiGeom(self, wkbType):
115114
try:
116-
if wkbType in (QgsWkbTypes.Point, QgsWkbTypes.MultiPoint,
117-
QgsWkbTypes.Point25D, QgsWkbTypes.MultiPoint25D):
118-
return QgsWkbTypes.MultiPoint
119-
elif wkbType in (QgsWkbTypes.LineString, QgsWkbTypes.MultiLineString,
120-
QgsWkbTypes.MultiLineString25D,
121-
QgsWkbTypes.LineString25D):
122-
123-
return QgsWkbTypes.MultiLineString
124-
elif wkbType in (QgsWkbTypes.Polygon, QgsWkbTypes.MultiPolygon,
125-
QgsWkbTypes.MultiPolygon25D, QgsWkbTypes.Polygon25D):
126-
127-
return QgsWkbTypes.MultiPolygon
115+
if wkbType in (QGis.WKBPoint, QGis.WKBMultiPoint,
116+
QGis.WKBPoint25D, QGis.WKBMultiPoint25D):
117+
return QGis.WKBMultiPoint
118+
elif wkbType in (QGis.WKBLineString, QGis.WKBMultiLineString,
119+
QGis.WKBMultiLineString25D,
120+
QGis.WKBLineString25D):
121+
122+
return QGis.WKBMultiLineString
123+
elif wkbType in (QGis.WKBPolygon, QGis.WKBMultiPolygon,
124+
QGis.WKBMultiPolygon25D, QGis.WKBPolygon25D):
125+
126+
return QGis.WKBMultiPolygon
128127
else:
129-
return QgsWkbTypes.Unknown
128+
return QGis.WKBUnknown
130129
except Exception:
131130
pass
132131

133132
def extractAsMulti(self, geom):
134-
if geom.type() == QgsWkbTypes.PointGeometry:
133+
if geom.type() == QGis.Point:
135134
if geom.isMultipart():
136135
return geom.asMultiPoint()
137136
else:
138137
return [geom.asPoint()]
139-
elif geom.type() == QgsWkbTypes.LineGeometry:
138+
elif geom.type() == QGis.Line:
140139
if geom.isMultipart():
141140
return geom.asMultiPolyline()
142141
else:
@@ -148,9 +147,9 @@ def extractAsMulti(self, geom):
148147
return [geom.asPolygon()]
149148

150149
def convertGeometry(self, geom_list, vType):
151-
if vType == QgsWkbTypes.PointGeometry:
150+
if vType == QGis.Point:
152151
return QgsGeometry().fromMultiPoint(geom_list)
153-
elif vType == QgsWkbTypes.LineGeometry:
152+
elif vType == QGis.Line:
154153
return QgsGeometry().fromMultiPolyline(geom_list)
155154
else:
156155
return QgsGeometry().fromMultiPolygon(geom_list)

0 commit comments

Comments
 (0)
Please sign in to comment.