mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-07 00:15:48 -04:00
[processing] ensure that outputs of vector overlay operations are multiparts (#3622)
This commit is contained in:
parent
010fc7c640
commit
cf6004959e
@ -67,7 +67,7 @@ class Clip(GeoAlgorithm):
|
|||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
||||||
source_layer.fields(),
|
source_layer.fields(),
|
||||||
source_layer.wkbType(),
|
QgsWkbTypes.multiType(source_layer.wkbType()),
|
||||||
source_layer.crs())
|
source_layer.crs())
|
||||||
|
|
||||||
# first build up a list of clip geometries
|
# first build up a list of clip geometries
|
||||||
|
@ -69,7 +69,7 @@ class Difference(GeoAlgorithm):
|
|||||||
self.getParameterValue(Difference.OVERLAY))
|
self.getParameterValue(Difference.OVERLAY))
|
||||||
ignoreInvalid = self.getParameterValue(Difference.IGNORE_INVALID)
|
ignoreInvalid = self.getParameterValue(Difference.IGNORE_INVALID)
|
||||||
|
|
||||||
geomType = layerA.wkbType()
|
geomType = QgsWkbTypes.multiType(layerA.wkbType())
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
Difference.OUTPUT).getVectorWriter(layerA.fields(),
|
Difference.OUTPUT).getVectorWriter(layerA.fields(),
|
||||||
geomType,
|
geomType,
|
||||||
|
@ -75,7 +75,7 @@ class Intersection(GeoAlgorithm):
|
|||||||
vlayerB = dataobjects.getObjectFromUri(
|
vlayerB = dataobjects.getObjectFromUri(
|
||||||
self.getParameterValue(self.INPUT2))
|
self.getParameterValue(self.INPUT2))
|
||||||
|
|
||||||
geomType = vlayerA.wkbType()
|
geomType = QgsWkbTypes.multiType(vlayerA.wkbType())
|
||||||
fields = vector.combineVectorFields(vlayerA, vlayerB)
|
fields = vector.combineVectorFields(vlayerA, vlayerB)
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
||||||
geomType, vlayerA.crs())
|
geomType, vlayerA.crs())
|
||||||
|
@ -65,7 +65,7 @@ class SymmetricalDifference(GeoAlgorithm):
|
|||||||
layerB = dataobjects.getObjectFromUri(
|
layerB = dataobjects.getObjectFromUri(
|
||||||
self.getParameterValue(self.OVERLAY))
|
self.getParameterValue(self.OVERLAY))
|
||||||
|
|
||||||
geomType = layerA.wkbType()
|
geomType = QgsWkbTypes.multiType(layerA.wkbType())
|
||||||
fields = vector.combineVectorFields(layerA, layerB)
|
fields = vector.combineVectorFields(layerA, layerB)
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
||||||
fields, geomType, layerA.crs())
|
fields, geomType, layerA.crs())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user