mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-17 00:04:02 -04:00
Merge pull request #4417 from nyalldawson/processing_writer
Refactor processing writer to use QgsFeatureSink
This commit is contained in:
commit
ccb4ac98b4
@ -75,8 +75,12 @@ class QgsProcessingContext
|
|||||||
Sets the expression ``context``.
|
Sets the expression ``context``.
|
||||||
%End
|
%End
|
||||||
|
|
||||||
|
QgsProject &temporaryLayerStore();
|
||||||
|
%Docstring
|
||||||
|
Returns a reference to the project used for storing temporary layers during
|
||||||
|
algorithm execution.
|
||||||
|
:rtype: QgsProject
|
||||||
|
%End
|
||||||
|
|
||||||
QgsFeatureRequest::InvalidGeometryCheck invalidGeometryCheck() const;
|
QgsFeatureRequest::InvalidGeometryCheck invalidGeometryCheck() const;
|
||||||
%Docstring
|
%Docstring
|
||||||
|
@ -97,8 +97,7 @@ class AddTableField(GeoAlgorithm):
|
|||||||
fields = layer.fields()
|
fields = layer.fields()
|
||||||
fields.append(QgsField(fieldName, self.TYPES[fieldType], '',
|
fields.append(QgsField(fieldName, self.TYPES[fieldType], '',
|
||||||
fieldLength, fieldPrecision))
|
fieldLength, fieldPrecision))
|
||||||
writer = output.getVectorWriter(fields, layer.wkbType(),
|
writer = output.getVectorWriter(fields, layer.wkbType(), layer.crs(), context)
|
||||||
layer.crs())
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -67,8 +67,7 @@ class AutoincrementalField(GeoAlgorithm):
|
|||||||
dataobjects.getLayerFromString(self.getParameterValue(self.INPUT))
|
dataobjects.getLayerFromString(self.getParameterValue(self.INPUT))
|
||||||
fields = vlayer.fields()
|
fields = vlayer.fields()
|
||||||
fields.append(QgsField('AUTO', QVariant.Int))
|
fields.append(QgsField('AUTO', QVariant.Int))
|
||||||
writer = output.getVectorWriter(fields, vlayer.wkbType(),
|
writer = output.getVectorWriter(fields, vlayer.wkbType(), vlayer.crs(), context)
|
||||||
vlayer.crs())
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
features = QgsProcessingUtils.getFeatures(vlayer, context)
|
features = QgsProcessingUtils.getFeatures(vlayer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(vlayer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(vlayer, context)
|
||||||
|
@ -78,10 +78,7 @@ class Boundary(GeoAlgorithm):
|
|||||||
output_wkb = QgsWkbTypes.addM(output_wkb)
|
output_wkb = QgsWkbTypes.addM(output_wkb)
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields(), output_wkb, layer.crs(), context)
|
||||||
layer.fields(),
|
|
||||||
output_wkb,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -67,10 +67,7 @@ class BoundingBox(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields().toList(), QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
layer.fields().toList(),
|
|
||||||
QgsWkbTypes.Polygon,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -69,10 +69,7 @@ class Centroids(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields(), QgsWkbTypes.Point, layer.crs(), context)
|
||||||
layer.fields(),
|
|
||||||
QgsWkbTypes.Point,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -108,10 +108,7 @@ class CheckValidity(GeoAlgorithm):
|
|||||||
|
|
||||||
valid_output = self.getOutputFromName(self.VALID_OUTPUT)
|
valid_output = self.getOutputFromName(self.VALID_OUTPUT)
|
||||||
valid_fields = layer.fields()
|
valid_fields = layer.fields()
|
||||||
valid_writer = valid_output.getVectorWriter(
|
valid_writer = valid_output.getVectorWriter(valid_fields, layer.wkbType(), layer.crs(), context)
|
||||||
valid_fields,
|
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
valid_count = 0
|
valid_count = 0
|
||||||
|
|
||||||
invalid_output = self.getOutputFromName(self.INVALID_OUTPUT)
|
invalid_output = self.getOutputFromName(self.INVALID_OUTPUT)
|
||||||
@ -119,10 +116,7 @@ class CheckValidity(GeoAlgorithm):
|
|||||||
QgsField(name='_errors',
|
QgsField(name='_errors',
|
||||||
type=QVariant.String,
|
type=QVariant.String,
|
||||||
len=255)]
|
len=255)]
|
||||||
invalid_writer = invalid_output.getVectorWriter(
|
invalid_writer = invalid_output.getVectorWriter(invalid_fields, layer.wkbType(), layer.crs(), context)
|
||||||
invalid_fields,
|
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
invalid_count = 0
|
invalid_count = 0
|
||||||
|
|
||||||
error_output = self.getOutputFromName(self.ERROR_OUTPUT)
|
error_output = self.getOutputFromName(self.ERROR_OUTPUT)
|
||||||
@ -130,10 +124,7 @@ class CheckValidity(GeoAlgorithm):
|
|||||||
QgsField(name='message',
|
QgsField(name='message',
|
||||||
type=QVariant.String,
|
type=QVariant.String,
|
||||||
len=255)]
|
len=255)]
|
||||||
error_writer = error_output.getVectorWriter(
|
error_writer = error_output.getVectorWriter(error_fields, QgsWkbTypes.Point, layer.crs(), context)
|
||||||
error_fields,
|
|
||||||
QgsWkbTypes.Point,
|
|
||||||
layer.crs())
|
|
||||||
error_count = 0
|
error_count = 0
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
|
@ -75,10 +75,9 @@ class Clip(GeoAlgorithm):
|
|||||||
mask_layer = dataobjects.getLayerFromString(
|
mask_layer = dataobjects.getLayerFromString(
|
||||||
self.getParameterValue(Clip.OVERLAY))
|
self.getParameterValue(Clip.OVERLAY))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(source_layer.fields(),
|
||||||
source_layer.fields(),
|
|
||||||
QgsWkbTypes.multiType(source_layer.wkbType()),
|
QgsWkbTypes.multiType(source_layer.wkbType()),
|
||||||
source_layer.crs())
|
source_layer.crs(), context)
|
||||||
|
|
||||||
# first build up a list of clip geometries
|
# first build up a list of clip geometries
|
||||||
clip_geoms = []
|
clip_geoms = []
|
||||||
|
@ -133,8 +133,8 @@ class ConcaveHull(GeoAlgorithm):
|
|||||||
feedback.setProgressText(self.tr('Saving data...'))
|
feedback.setProgressText(self.tr('Saving data...'))
|
||||||
feat = QgsFeature()
|
feat = QgsFeature()
|
||||||
dissolved_layer.getFeatures(QgsFeatureRequest().setFilterFid(0)).nextFeature(feat)
|
dissolved_layer.getFeatures(QgsFeatureRequest().setFilterFid(0)).nextFeature(feat)
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields().toList(), QgsWkbTypes.Polygon,
|
||||||
layer.fields().toList(), QgsWkbTypes.Polygon, layer.crs())
|
layer.crs(), context)
|
||||||
geom = feat.geometry()
|
geom = feat.geometry()
|
||||||
if no_multigeom and geom.isMultipart():
|
if no_multigeom and geom.isMultipart():
|
||||||
# Only singlepart geometries are allowed
|
# Only singlepart geometries are allowed
|
||||||
|
@ -103,8 +103,7 @@ class ConvexHull(GeoAlgorithm):
|
|||||||
QgsField('perim', QVariant.Double, '', 20, 6)
|
QgsField('perim', QVariant.Double, '', 20, 6)
|
||||||
]
|
]
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
fields, QgsWkbTypes.Polygon, layer.crs())
|
|
||||||
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
inGeom = QgsGeometry()
|
inGeom = QgsGeometry()
|
||||||
|
@ -77,8 +77,7 @@ class Delaunay(GeoAlgorithm):
|
|||||||
QgsField('POINTB', QVariant.Double, '', 24, 15),
|
QgsField('POINTB', QVariant.Double, '', 24, 15),
|
||||||
QgsField('POINTC', QVariant.Double, '', 24, 15)]
|
QgsField('POINTC', QVariant.Double, '', 24, 15)]
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
QgsWkbTypes.Polygon, layer.crs())
|
|
||||||
|
|
||||||
pts = []
|
pts = []
|
||||||
ptDict = {}
|
ptDict = {}
|
||||||
|
@ -83,8 +83,7 @@ class DeleteColumn(GeoAlgorithm):
|
|||||||
for index in field_indices:
|
for index in field_indices:
|
||||||
fields.remove(index)
|
fields.remove(index)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, layer.wkbType(), layer.crs(), context)
|
||||||
layer.wkbType(), layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -65,8 +65,7 @@ class DeleteDuplicateGeometries(GeoAlgorithm):
|
|||||||
|
|
||||||
fields = layer.fields()
|
fields = layer.fields()
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, layer.wkbType(), layer.crs(), context)
|
||||||
layer.wkbType(), layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
|
|
||||||
|
@ -77,10 +77,8 @@ class DeleteHoles(GeoAlgorithm):
|
|||||||
if min_area == 0.0:
|
if min_area == 0.0:
|
||||||
min_area = -1.0
|
min_area = -1.0
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields(), layer.wkbType(), layer.crs(),
|
||||||
layer.fields(),
|
context)
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -85,8 +85,7 @@ class DensifyGeometries(GeoAlgorithm):
|
|||||||
isPolygon = layer.geometryType() == QgsWkbTypes.PolygonGeometry
|
isPolygon = layer.geometryType() == QgsWkbTypes.PolygonGeometry
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT).getVectorWriter(layer.fields().toList(),
|
self.OUTPUT).getVectorWriter(layer.fields().toList(), layer.wkbType(), layer.crs(), context)
|
||||||
layer.wkbType(), layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -79,8 +79,7 @@ class DensifyGeometriesInterval(GeoAlgorithm):
|
|||||||
isPolygon = layer.geometryType() == QgsWkbTypes.PolygonGeometry
|
isPolygon = layer.geometryType() == QgsWkbTypes.PolygonGeometry
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT).getVectorWriter(layer.fields().toList(),
|
self.OUTPUT).getVectorWriter(layer.fields().toList(), layer.wkbType(), layer.crs(), context)
|
||||||
layer.wkbType(), layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -77,9 +77,7 @@ class Difference(GeoAlgorithm):
|
|||||||
|
|
||||||
geomType = QgsWkbTypes.multiType(layerA.wkbType())
|
geomType = QgsWkbTypes.multiType(layerA.wkbType())
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
Difference.OUTPUT).getVectorWriter(layerA.fields(),
|
Difference.OUTPUT).getVectorWriter(layerA.fields(), geomType, layerA.crs(), context)
|
||||||
geomType,
|
|
||||||
layerA.crs())
|
|
||||||
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
index = vector.spatialindex(layerB)
|
index = vector.spatialindex(layerB)
|
||||||
|
@ -82,10 +82,7 @@ class Dissolve(GeoAlgorithm):
|
|||||||
self.getParameterValue(Dissolve.INPUT))
|
self.getParameterValue(Dissolve.INPUT))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
Dissolve.OUTPUT).getVectorWriter(
|
Dissolve.OUTPUT).getVectorWriter(vlayerA.fields().toList(), vlayerA.wkbType(), vlayerA.crs(), context)
|
||||||
vlayerA.fields().toList(),
|
|
||||||
vlayerA.wkbType(),
|
|
||||||
vlayerA.crs())
|
|
||||||
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
features = QgsProcessingUtils.getFeatures(vlayerA, context)
|
features = QgsProcessingUtils.getFeatures(vlayerA, context)
|
||||||
|
@ -70,10 +70,8 @@ class DropGeometry(GeoAlgorithm):
|
|||||||
layer = dataobjects.getLayerFromString(
|
layer = dataobjects.getLayerFromString(
|
||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_TABLE).getVectorWriter(
|
self.OUTPUT_TABLE).getVectorWriter(layer.fields(), QgsWkbTypes.NoGeometry, QgsCoordinateReferenceSystem(),
|
||||||
layer.fields(),
|
context)
|
||||||
QgsWkbTypes.NoGeometry,
|
|
||||||
QgsCoordinateReferenceSystem())
|
|
||||||
|
|
||||||
request = QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry)
|
request = QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry)
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context, request)
|
features = QgsProcessingUtils.getFeatures(layer, context, request)
|
||||||
|
@ -92,8 +92,7 @@ class EliminateSelection(GeoAlgorithm):
|
|||||||
featToEliminate = []
|
featToEliminate = []
|
||||||
selFeatIds = inLayer.selectedFeatureIds()
|
selFeatIds = inLayer.selectedFeatureIds()
|
||||||
output = self.getOutputFromName(self.OUTPUT)
|
output = self.getOutputFromName(self.OUTPUT)
|
||||||
writer = output.getVectorWriter(inLayer.fields(),
|
writer = output.getVectorWriter(inLayer.fields(), inLayer.wkbType(), inLayer.crs(), context)
|
||||||
inLayer.wkbType(), inLayer.crs())
|
|
||||||
|
|
||||||
for aFeat in inLayer.getFeatures():
|
for aFeat in inLayer.getFeatures():
|
||||||
if aFeat.id() in selFeatIds:
|
if aFeat.id() in selFeatIds:
|
||||||
|
@ -73,8 +73,7 @@ class EquivalentNumField(GeoAlgorithm):
|
|||||||
fieldindex = vlayer.fields().lookupField(fieldname)
|
fieldindex = vlayer.fields().lookupField(fieldname)
|
||||||
fields = vlayer.fields()
|
fields = vlayer.fields()
|
||||||
fields.append(QgsField('NUM_FIELD', QVariant.Int))
|
fields.append(QgsField('NUM_FIELD', QVariant.Int))
|
||||||
writer = output.getVectorWriter(fields, vlayer.wkbType(),
|
writer = output.getVectorWriter(fields, vlayer.wkbType(), vlayer.crs(), context)
|
||||||
vlayer.crs())
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
classes = {}
|
classes = {}
|
||||||
|
|
||||||
|
@ -146,11 +146,9 @@ class ExecuteSQL(GeoAlgorithm):
|
|||||||
if not vLayer.isValid():
|
if not vLayer.isValid():
|
||||||
raise GeoAlgorithmExecutionException(vLayer.dataProvider().error().message())
|
raise GeoAlgorithmExecutionException(vLayer.dataProvider().error().message())
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(vLayer.fields().toList(),
|
||||||
vLayer.fields().toList(),
|
|
||||||
# Create a point layer (without any points) if 'no geometry' is chosen
|
|
||||||
vLayer.wkbType() if geometry_type != 1 else 1,
|
vLayer.wkbType() if geometry_type != 1 else 1,
|
||||||
vLayer.crs())
|
vLayer.crs(), context)
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(vLayer, context)
|
features = QgsProcessingUtils.getFeatures(vLayer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(vLayer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(vLayer, context)
|
||||||
|
@ -68,8 +68,7 @@ class Explode(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT))
|
self.getParameterValue(self.INPUT))
|
||||||
output = self.getOutputFromName(self.OUTPUT)
|
output = self.getOutputFromName(self.OUTPUT)
|
||||||
fields = vlayer.fields()
|
fields = vlayer.fields()
|
||||||
writer = output.getVectorWriter(fields, QgsWkbTypes.LineString,
|
writer = output.getVectorWriter(fields, QgsWkbTypes.LineString, vlayer.crs(), context)
|
||||||
vlayer.crs())
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
features = QgsProcessingUtils.getFeatures(vlayer, context)
|
features = QgsProcessingUtils.getFeatures(vlayer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(vlayer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(vlayer, context)
|
||||||
|
@ -107,8 +107,8 @@ class ExportGeometryInfo(GeoAlgorithm):
|
|||||||
zName = vector.createUniqueFieldName('mvalue', fields)
|
zName = vector.createUniqueFieldName('mvalue', fields)
|
||||||
fields.append(QgsField(zName, QVariant.Double))
|
fields.append(QgsField(zName, QVariant.Double))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields.toList(), layer.wkbType(), layer.crs(),
|
||||||
fields.toList(), layer.wkbType(), layer.crs())
|
context)
|
||||||
|
|
||||||
ellips = None
|
ellips = None
|
||||||
crs = None
|
crs = None
|
||||||
|
@ -71,10 +71,7 @@ class ExtendLines(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields(), layer.wkbType(), layer.crs(), context)
|
||||||
layer.fields(),
|
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
start_distance = self.getParameterValue(self.START_DISTANCE)
|
start_distance = self.getParameterValue(self.START_DISTANCE)
|
||||||
end_distance = self.getParameterValue(self.END_DISTANCE)
|
end_distance = self.getParameterValue(self.END_DISTANCE)
|
||||||
|
@ -89,8 +89,7 @@ class ExtentFromLayer(GeoAlgorithm):
|
|||||||
QgsField('WIDTH', QVariant.Double),
|
QgsField('WIDTH', QVariant.Double),
|
||||||
]
|
]
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
QgsWkbTypes.Polygon, layer.crs())
|
|
||||||
|
|
||||||
if byFeature:
|
if byFeature:
|
||||||
self.featureExtent(layer, context, writer, feedback)
|
self.featureExtent(layer, context, writer, feedback)
|
||||||
|
@ -111,8 +111,7 @@ class ExtractByAttribute(GeoAlgorithm):
|
|||||||
value = self.getParameterValue(self.VALUE)
|
value = self.getParameterValue(self.VALUE)
|
||||||
|
|
||||||
fields = layer.fields()
|
fields = layer.fields()
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, layer.wkbType(), layer.crs(), context)
|
||||||
layer.wkbType(), layer.crs())
|
|
||||||
|
|
||||||
idx = layer.fields().lookupField(fieldName)
|
idx = layer.fields().lookupField(fieldName)
|
||||||
fieldType = fields[idx].type()
|
fieldType = fields[idx].type()
|
||||||
|
@ -70,7 +70,8 @@ class ExtractByExpression(GeoAlgorithm):
|
|||||||
def processAlgorithm(self, context, feedback):
|
def processAlgorithm(self, context, feedback):
|
||||||
layer = dataobjects.getLayerFromString(self.getParameterValue(self.INPUT))
|
layer = dataobjects.getLayerFromString(self.getParameterValue(self.INPUT))
|
||||||
expression_string = self.getParameterValue(self.EXPRESSION)
|
expression_string = self.getParameterValue(self.EXPRESSION)
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields(), layer.wkbType(), layer.crs())
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields(), layer.wkbType(), layer.crs(),
|
||||||
|
context)
|
||||||
|
|
||||||
expression = QgsExpression(expression_string)
|
expression = QgsExpression(expression_string)
|
||||||
if not expression.hasParserError():
|
if not expression.hasParserError():
|
||||||
|
@ -97,8 +97,7 @@ class ExtractByLocation(GeoAlgorithm):
|
|||||||
index = vector.spatialindex(layer)
|
index = vector.spatialindex(layer)
|
||||||
|
|
||||||
output = self.getOutputFromName(self.OUTPUT)
|
output = self.getOutputFromName(self.OUTPUT)
|
||||||
writer = output.getVectorWriter(layer.fields(),
|
writer = output.getVectorWriter(layer.fields(), layer.wkbType(), layer.crs(), context)
|
||||||
layer.wkbType(), layer.crs())
|
|
||||||
|
|
||||||
if 'disjoint' in predicates:
|
if 'disjoint' in predicates:
|
||||||
disjoinSet = []
|
disjoinSet = []
|
||||||
|
@ -75,8 +75,7 @@ class ExtractNodes(GeoAlgorithm):
|
|||||||
fields.append(QgsField('distance', QVariant.Double))
|
fields.append(QgsField('distance', QVariant.Double))
|
||||||
fields.append(QgsField('angle', QVariant.Double))
|
fields.append(QgsField('angle', QVariant.Double))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Point, layer.crs(), context)
|
||||||
fields, QgsWkbTypes.Point, layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -80,10 +80,7 @@ class ExtractSpecificNodes(GeoAlgorithm):
|
|||||||
fields.append(QgsField('angle', QVariant.Double))
|
fields.append(QgsField('angle', QVariant.Double))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(fields, QgsWkbTypes.Point, layer.crs(), context)
|
||||||
fields,
|
|
||||||
QgsWkbTypes.Point,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
node_indices_string = self.getParameterValue(self.NODES)
|
node_indices_string = self.getParameterValue(self.NODES)
|
||||||
indices = []
|
indices = []
|
||||||
|
@ -107,8 +107,7 @@ class FieldsPyculator(GeoAlgorithm):
|
|||||||
fields = layer.fields()
|
fields = layer.fields()
|
||||||
fields.append(QgsField(fieldName, self.TYPES[fieldType], '',
|
fields.append(QgsField(fieldName, self.TYPES[fieldType], '',
|
||||||
fieldLength, fieldPrecision))
|
fieldLength, fieldPrecision))
|
||||||
writer = output.getVectorWriter(fields, layer.wkbType(),
|
writer = output.getVectorWriter(fields, layer.wkbType(), layer.crs(), context)
|
||||||
layer.crs())
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
new_ns = {}
|
new_ns = {}
|
||||||
|
|
||||||
|
@ -113,8 +113,7 @@ class FieldsCalculator(GeoAlgorithm):
|
|||||||
if newField:
|
if newField:
|
||||||
fields.append(QgsField(fieldName, fieldType, '', width, precision))
|
fields.append(QgsField(fieldName, fieldType, '', width, precision))
|
||||||
|
|
||||||
writer = output.getVectorWriter(fields, layer.wkbType(),
|
writer = output.getVectorWriter(fields, layer.wkbType(), layer.crs(), context)
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
exp = QgsExpression(formula)
|
exp = QgsExpression(formula)
|
||||||
|
|
||||||
|
@ -144,9 +144,7 @@ class FieldsMapper(GeoAlgorithm):
|
|||||||
str(expression.parserErrorString())))
|
str(expression.parserErrorString())))
|
||||||
expressions.append(expression)
|
expressions.append(expression)
|
||||||
|
|
||||||
writer = output.getVectorWriter(fields,
|
writer = output.getVectorWriter(fields, layer.wkbType(), layer.crs(), context)
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
# Create output vector layer with new attributes
|
# Create output vector layer with new attributes
|
||||||
error_exp = None
|
error_exp = None
|
||||||
|
@ -73,10 +73,7 @@ class FixGeometry(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT))
|
self.getParameterValue(self.INPUT))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT).getVectorWriter(
|
self.OUTPUT).getVectorWriter(layer.fields(), QgsWkbTypes.multiType(layer.wkbType()), layer.crs(), context)
|
||||||
layer.fields(),
|
|
||||||
QgsWkbTypes.multiType(layer.wkbType()),
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
if QgsProcessingUtils.featureCount(layer, context) == 0:
|
if QgsProcessingUtils.featureCount(layer, context) == 0:
|
||||||
|
@ -105,8 +105,7 @@ class FixedDistanceBuffer(GeoAlgorithm):
|
|||||||
miter_limit = self.getParameterValue(self.MITRE_LIMIT)
|
miter_limit = self.getParameterValue(self.MITRE_LIMIT)
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT).getVectorWriter(layer.fields().toList(),
|
self.OUTPUT).getVectorWriter(layer.fields().toList(), QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
QgsWkbTypes.Polygon, layer.crs())
|
|
||||||
|
|
||||||
buff.buffering(feedback, context, writer, distance, None, False, layer, dissolve, segments, end_cap_style,
|
buff.buffering(feedback, context, writer, distance, None, False, layer, dissolve, segments, end_cap_style,
|
||||||
join_style, miter_limit)
|
join_style, miter_limit)
|
||||||
|
@ -103,10 +103,7 @@ class GeometryByExpression(GeoAlgorithm):
|
|||||||
wkb_type = QgsWkbTypes.addM(wkb_type)
|
wkb_type = QgsWkbTypes.addM(wkb_type)
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields(), wkb_type, layer.crs(), context)
|
||||||
layer.fields(),
|
|
||||||
wkb_type,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
expression = QgsExpression(self.getParameterValue(self.EXPRESSION))
|
expression = QgsExpression(self.getParameterValue(self.EXPRESSION))
|
||||||
if expression.hasParserError():
|
if expression.hasParserError():
|
||||||
|
@ -93,8 +93,7 @@ class GeometryConvert(GeoAlgorithm):
|
|||||||
else:
|
else:
|
||||||
newType = QgsWkbTypes.Point
|
newType = QgsWkbTypes.Point
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields(), newType, layer.crs(), context)
|
||||||
layer.fields(), newType, layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -126,8 +126,7 @@ class GridLine(GeoAlgorithm):
|
|||||||
QgsField('coord', QVariant.Double, '', 24, 15)
|
QgsField('coord', QVariant.Double, '', 24, 15)
|
||||||
]
|
]
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.LineString, crs, context)
|
||||||
QgsWkbTypes.LineString, crs)
|
|
||||||
|
|
||||||
if hOverlay > 0:
|
if hOverlay > 0:
|
||||||
hSpace = [hSpacing - hOverlay, hOverlay]
|
hSpace = [hSpacing - hOverlay, hOverlay]
|
||||||
|
@ -130,8 +130,7 @@ class GridPolygon(GeoAlgorithm):
|
|||||||
QgsField('id', QVariant.Int, '', 10, 0)
|
QgsField('id', QVariant.Int, '', 10, 0)
|
||||||
]
|
]
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Polygon, crs, context)
|
||||||
QgsWkbTypes.Polygon, crs)
|
|
||||||
|
|
||||||
if idx == 0:
|
if idx == 0:
|
||||||
self._rectangleGrid(
|
self._rectangleGrid(
|
||||||
|
@ -81,8 +81,8 @@ class Gridify(GeoAlgorithm):
|
|||||||
raise GeoAlgorithmExecutionException(
|
raise GeoAlgorithmExecutionException(
|
||||||
self.tr('Invalid grid spacing: {0}/{1}').format(hSpacing, vSpacing))
|
self.tr('Invalid grid spacing: {0}/{1}').format(hSpacing, vSpacing))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields(), layer.wkbType(), layer.crs(),
|
||||||
layer.fields(), layer.wkbType(), layer.crs())
|
context)
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -112,8 +112,8 @@ class HubDistanceLines(GeoAlgorithm):
|
|||||||
fields.append(QgsField('HubName', QVariant.String))
|
fields.append(QgsField('HubName', QVariant.String))
|
||||||
fields.append(QgsField('HubDist', QVariant.Double))
|
fields.append(QgsField('HubDist', QVariant.Double))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.LineString, layerPoints.crs(),
|
||||||
fields, QgsWkbTypes.LineString, layerPoints.crs())
|
context)
|
||||||
|
|
||||||
index = vector.spatialindex(layerHubs)
|
index = vector.spatialindex(layerHubs)
|
||||||
|
|
||||||
|
@ -112,8 +112,8 @@ class HubDistancePoints(GeoAlgorithm):
|
|||||||
fields.append(QgsField('HubName', QVariant.String))
|
fields.append(QgsField('HubName', QVariant.String))
|
||||||
fields.append(QgsField('HubDist', QVariant.Double))
|
fields.append(QgsField('HubDist', QVariant.Double))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Point, layerPoints.crs(),
|
||||||
fields, QgsWkbTypes.Point, layerPoints.crs())
|
context)
|
||||||
|
|
||||||
index = vector.spatialindex(layerHubs)
|
index = vector.spatialindex(layerHubs)
|
||||||
|
|
||||||
|
@ -88,8 +88,8 @@ class HubLines(GeoAlgorithm):
|
|||||||
raise GeoAlgorithmExecutionException(
|
raise GeoAlgorithmExecutionException(
|
||||||
self.tr('Same layer given for both hubs and spokes'))
|
self.tr('Same layer given for both hubs and spokes'))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layerSpoke.fields(), QgsWkbTypes.LineString,
|
||||||
layerSpoke.fields(), QgsWkbTypes.LineString, layerSpoke.crs())
|
layerSpoke.crs(), context)
|
||||||
|
|
||||||
spokes = QgsProcessingUtils.getFeatures(layerSpoke, context)
|
spokes = QgsProcessingUtils.getFeatures(layerSpoke, context)
|
||||||
hubs = QgsProcessingUtils.getFeatures(layerHub, context)
|
hubs = QgsProcessingUtils.getFeatures(layerHub, context)
|
||||||
|
@ -86,8 +86,7 @@ class Intersection(GeoAlgorithm):
|
|||||||
|
|
||||||
geomType = QgsWkbTypes.multiType(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(), context)
|
||||||
geomType, vlayerA.crs())
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
index = vector.spatialindex(vlayerB)
|
index = vector.spatialindex(vlayerB)
|
||||||
selectionA = QgsProcessingUtils.getFeatures(vlayerA, context)
|
selectionA = QgsProcessingUtils.getFeatures(vlayerA, context)
|
||||||
|
@ -91,8 +91,7 @@ class JoinAttributes(GeoAlgorithm):
|
|||||||
joinField2Index = layer2.fields().lookupField(field2)
|
joinField2Index = layer2.fields().lookupField(field2)
|
||||||
|
|
||||||
outFields = vector.combineVectorFields(layer, layer2)
|
outFields = vector.combineVectorFields(layer, layer2)
|
||||||
writer = output.getVectorWriter(outFields, layer.wkbType(),
|
writer = output.getVectorWriter(outFields, layer.wkbType(), layer.crs(), context)
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
# Cache attributes of Layer 2
|
# Cache attributes of Layer 2
|
||||||
cache = {}
|
cache = {}
|
||||||
|
@ -105,8 +105,8 @@ class LinesIntersection(GeoAlgorithm):
|
|||||||
fieldListB = vector.testForUniqueness(fieldListA, fieldListB)
|
fieldListB = vector.testForUniqueness(fieldListA, fieldListB)
|
||||||
fieldListA.extend(fieldListB)
|
fieldListA.extend(fieldListB)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fieldListA,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fieldListA, QgsWkbTypes.Point, layerA.crs(),
|
||||||
QgsWkbTypes.Point, layerA.crs())
|
context)
|
||||||
|
|
||||||
spatialIndex = vector.spatialindex(layerB)
|
spatialIndex = vector.spatialindex(layerB)
|
||||||
|
|
||||||
|
@ -68,9 +68,8 @@ class LinesToPolygons(GeoAlgorithm):
|
|||||||
def processAlgorithm(self, context, feedback):
|
def processAlgorithm(self, context, feedback):
|
||||||
layer = dataobjects.getLayerFromString(self.getParameterValue(self.INPUT))
|
layer = dataobjects.getLayerFromString(self.getParameterValue(self.INPUT))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields().toList(), QgsWkbTypes.Polygon,
|
||||||
layer.fields().toList(), QgsWkbTypes.Polygon, layer.crs()
|
layer.crs(), context)
|
||||||
)
|
|
||||||
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
|
@ -97,9 +97,7 @@ class MeanCoords(GeoAlgorithm):
|
|||||||
QgsField('MEAN_Y', QVariant.Double, '', 24, 15),
|
QgsField('MEAN_Y', QVariant.Double, '', 24, 15),
|
||||||
QgsField('UID', QVariant.String, '', 255)]
|
QgsField('UID', QVariant.String, '', 255)]
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fieldList, QgsWkbTypes.Point, layer.crs(), context)
|
||||||
fieldList, QgsWkbTypes.Point, layer.crs()
|
|
||||||
)
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -94,9 +94,8 @@ class Merge(GeoAlgorithm):
|
|||||||
fields.append(sfield)
|
fields.append(sfield)
|
||||||
|
|
||||||
total = 100.0 / totalFeatureCount
|
total = 100.0 / totalFeatureCount
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields.toList(), layers[0].wkbType(),
|
||||||
fields.toList(), layers[0].wkbType(),
|
layers[0].crs(), context)
|
||||||
layers[0].crs())
|
|
||||||
|
|
||||||
featureCount = 0
|
featureCount = 0
|
||||||
for layer in layers:
|
for layer in layers:
|
||||||
|
@ -70,10 +70,7 @@ class MergeLines(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields().toList(), layer.wkbType(), layer.crs(), context)
|
||||||
layer.fields().toList(),
|
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -64,8 +64,8 @@ class MultipartToSingleparts(GeoAlgorithm):
|
|||||||
layer = dataobjects.getLayerFromString(self.getParameterValue(self.INPUT))
|
layer = dataobjects.getLayerFromString(self.getParameterValue(self.INPUT))
|
||||||
geomType = QgsWkbTypes.singleType(layer.wkbType())
|
geomType = QgsWkbTypes.singleType(layer.wkbType())
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields().toList(), geomType, layer.crs(),
|
||||||
layer.fields().toList(), geomType, layer.crs())
|
context)
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -88,10 +88,7 @@ class OffsetLine(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields().toList(), QgsWkbTypes.LineString, layer.crs(), context)
|
||||||
layer.fields().toList(),
|
|
||||||
QgsWkbTypes.LineString,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
distance = self.getParameterValue(self.DISTANCE)
|
distance = self.getParameterValue(self.DISTANCE)
|
||||||
segments = int(self.getParameterValue(self.SEGMENTS))
|
segments = int(self.getParameterValue(self.SEGMENTS))
|
||||||
|
@ -90,8 +90,7 @@ class OrientedMinimumBoundingBox(GeoAlgorithm):
|
|||||||
fields.append(QgsField('width', QVariant.Double))
|
fields.append(QgsField('width', QVariant.Double))
|
||||||
fields.append(QgsField('height', QVariant.Double))
|
fields.append(QgsField('height', QVariant.Double))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
QgsWkbTypes.Polygon, layer.crs())
|
|
||||||
|
|
||||||
if byFeature:
|
if byFeature:
|
||||||
self.featureOmbb(layer, context, writer, feedback)
|
self.featureOmbb(layer, context, writer, feedback)
|
||||||
|
@ -82,10 +82,7 @@ class Orthogonalize(GeoAlgorithm):
|
|||||||
max_iterations = self.getParameterValue(self.MAX_ITERATIONS)
|
max_iterations = self.getParameterValue(self.MAX_ITERATIONS)
|
||||||
angle_tolerance = self.getParameterValue(self.ANGLE_TOLERANCE)
|
angle_tolerance = self.getParameterValue(self.ANGLE_TOLERANCE)
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields(), layer.wkbType(), layer.crs(), context)
|
||||||
layer.fields(),
|
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -67,10 +67,7 @@ class PointOnSurface(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields().toList(), QgsWkbTypes.Point, layer.crs(), context)
|
||||||
layer.fields().toList(),
|
|
||||||
QgsWkbTypes.Point,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -87,8 +87,7 @@ class PointsAlongGeometry(GeoAlgorithm):
|
|||||||
fields.append(QgsField('distance', QVariant.Double))
|
fields.append(QgsField('distance', QVariant.Double))
|
||||||
fields.append(QgsField('angle', QVariant.Double))
|
fields.append(QgsField('angle', QVariant.Double))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Point, layer.crs(), context)
|
||||||
fields, QgsWkbTypes.Point, layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -80,8 +80,7 @@ class PointsDisplacement(GeoAlgorithm):
|
|||||||
|
|
||||||
layer = dataobjects.getLayerFromString(self.getParameterValue(self.INPUT_LAYER))
|
layer = dataobjects.getLayerFromString(self.getParameterValue(self.INPUT_LAYER))
|
||||||
|
|
||||||
writer = output.getVectorWriter(layer.fields(),
|
writer = output.getVectorWriter(layer.fields(), layer.wkbType(), layer.crs(), context)
|
||||||
layer.wkbType(), layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
|
|
||||||
|
@ -87,8 +87,8 @@ class PointsFromLines(GeoAlgorithm):
|
|||||||
fields.append(QgsField('line_id', QVariant.Int, '', 10, 0))
|
fields.append(QgsField('line_id', QVariant.Int, '', 10, 0))
|
||||||
fields.append(QgsField('point_id', QVariant.Int, '', 10, 0))
|
fields.append(QgsField('point_id', QVariant.Int, '', 10, 0))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(fields.toList(), QgsWkbTypes.Point,
|
||||||
fields.toList(), QgsWkbTypes.Point, layer.crs())
|
layer.crs(), context)
|
||||||
|
|
||||||
outFeature = QgsFeature()
|
outFeature = QgsFeature()
|
||||||
outFeature.setFields(fields)
|
outFeature.setFields(fields)
|
||||||
|
@ -87,8 +87,8 @@ class PointsFromPolygons(GeoAlgorithm):
|
|||||||
fields.append(QgsField('poly_id', QVariant.Int, '', 10, 0))
|
fields.append(QgsField('poly_id', QVariant.Int, '', 10, 0))
|
||||||
fields.append(QgsField('point_id', QVariant.Int, '', 10, 0))
|
fields.append(QgsField('point_id', QVariant.Int, '', 10, 0))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT_LAYER).getVectorWriter(fields.toList(), QgsWkbTypes.Point,
|
||||||
fields.toList(), QgsWkbTypes.Point, layer.crs())
|
layer.crs(), context)
|
||||||
|
|
||||||
outFeature = QgsFeature()
|
outFeature = QgsFeature()
|
||||||
outFeature.setFields(fields)
|
outFeature.setFields(fields)
|
||||||
|
@ -80,8 +80,8 @@ class PointsInPolygon(GeoAlgorithm):
|
|||||||
(idxCount, fieldList) = vector.findOrCreateField(polyLayer,
|
(idxCount, fieldList) = vector.findOrCreateField(polyLayer,
|
||||||
polyLayer.fields(), fieldName)
|
polyLayer.fields(), fieldName)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields.toList(), polyLayer.wkbType(),
|
||||||
fields.toList(), polyLayer.wkbType(), polyLayer.crs())
|
polyLayer.crs(), context)
|
||||||
|
|
||||||
spatialIndex = vector.spatialindex(pointLayer)
|
spatialIndex = vector.spatialindex(pointLayer)
|
||||||
|
|
||||||
|
@ -87,8 +87,8 @@ class PointsInPolygonUnique(GeoAlgorithm):
|
|||||||
(idxCount, fieldList) = vector.findOrCreateField(polyLayer,
|
(idxCount, fieldList) = vector.findOrCreateField(polyLayer,
|
||||||
polyLayer.fields(), fieldName)
|
polyLayer.fields(), fieldName)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields.toList(), polyLayer.wkbType(),
|
||||||
fields.toList(), polyLayer.wkbType(), polyLayer.crs())
|
polyLayer.crs(), context)
|
||||||
|
|
||||||
spatialIndex = vector.spatialindex(pointLayer)
|
spatialIndex = vector.spatialindex(pointLayer)
|
||||||
|
|
||||||
|
@ -93,8 +93,8 @@ class PointsInPolygonWeighted(GeoAlgorithm):
|
|||||||
(idxCount, fieldList) = vector.findOrCreateField(polyLayer,
|
(idxCount, fieldList) = vector.findOrCreateField(polyLayer,
|
||||||
polyLayer.fields(), fieldName)
|
polyLayer.fields(), fieldName)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields.toList(), polyLayer.wkbType(),
|
||||||
fields.toList(), polyLayer.wkbType(), polyLayer.crs())
|
polyLayer.crs(), context)
|
||||||
|
|
||||||
spatialIndex = vector.spatialindex(pointLayer)
|
spatialIndex = vector.spatialindex(pointLayer)
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ class PointsLayerFromTable(GeoAlgorithm):
|
|||||||
target_crs = QgsCoordinateReferenceSystem()
|
target_crs = QgsCoordinateReferenceSystem()
|
||||||
target_crs.createFromUserInput(crsId)
|
target_crs.createFromUserInput(crsId)
|
||||||
|
|
||||||
writer = output.getVectorWriter(fields, wkb_type, target_crs)
|
writer = output.getVectorWriter(fields, wkb_type, target_crs, context)
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(vlayer, context)
|
features = QgsProcessingUtils.getFeatures(vlayer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(vlayer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(vlayer, context)
|
||||||
|
@ -101,8 +101,8 @@ class PointsToPaths(GeoAlgorithm):
|
|||||||
fields.append(QgsField('group', QVariant.String, '', 254, 0))
|
fields.append(QgsField('group', QVariant.String, '', 254, 0))
|
||||||
fields.append(QgsField('begin', QVariant.String, '', 254, 0))
|
fields.append(QgsField('begin', QVariant.String, '', 254, 0))
|
||||||
fields.append(QgsField('end', QVariant.String, '', 254, 0))
|
fields.append(QgsField('end', QVariant.String, '', 254, 0))
|
||||||
writer = self.getOutputFromName(self.OUTPUT_LINES).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT_LINES).getVectorWriter(fields, QgsWkbTypes.LineString, layer.crs(),
|
||||||
fields, QgsWkbTypes.LineString, layer.crs())
|
context)
|
||||||
|
|
||||||
points = dict()
|
points = dict()
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
|
@ -79,10 +79,7 @@ class PoleOfInaccessibility(GeoAlgorithm):
|
|||||||
fields.append(QgsField('dist_pole', QVariant.Double))
|
fields.append(QgsField('dist_pole', QVariant.Double))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(fields, QgsWkbTypes.Point, layer.crs(), context)
|
||||||
fields,
|
|
||||||
QgsWkbTypes.Point,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -76,10 +76,7 @@ class PolygonCentroids(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields(), QgsWkbTypes.Point, layer.crs(), context)
|
||||||
layer.fields(),
|
|
||||||
QgsWkbTypes.Point,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ class Polygonize(GeoAlgorithm):
|
|||||||
feedback.setProgress(50)
|
feedback.setProgress(50)
|
||||||
|
|
||||||
feedback.pushInfo('Saving polygons...')
|
feedback.pushInfo('Saving polygons...')
|
||||||
writer = output.getVectorWriter(fields, QgsWkbTypes.Polygon, vlayer.crs())
|
writer = output.getVectorWriter(fields, QgsWkbTypes.Polygon, vlayer.crs(), context)
|
||||||
total = 50.0 / polygons.geometry().numGeometries()
|
total = 50.0 / polygons.geometry().numGeometries()
|
||||||
for i in range(polygons.geometry().numGeometries()):
|
for i in range(polygons.geometry().numGeometries()):
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
|
@ -68,8 +68,8 @@ class PolygonsToLines(GeoAlgorithm):
|
|||||||
def processAlgorithm(self, context, feedback):
|
def processAlgorithm(self, context, feedback):
|
||||||
layer = dataobjects.getLayerFromString(self.getParameterValue(self.INPUT))
|
layer = dataobjects.getLayerFromString(self.getParameterValue(self.INPUT))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields().toList(), QgsWkbTypes.LineString,
|
||||||
layer.fields().toList(), QgsWkbTypes.LineString, layer.crs())
|
layer.crs(), context)
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -97,8 +97,8 @@ class RandomExtract(GeoAlgorithm):
|
|||||||
|
|
||||||
selran = random.sample(list(range(featureCount)), value)
|
selran = random.sample(list(range(featureCount)), value)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields().toList(), layer.wkbType(),
|
||||||
layer.fields().toList(), layer.wkbType(), layer.crs())
|
layer.crs(), context)
|
||||||
|
|
||||||
total = 100.0 / featureCount
|
total = 100.0 / featureCount
|
||||||
for i, feat in enumerate(features):
|
for i, feat in enumerate(features):
|
||||||
|
@ -104,8 +104,8 @@ class RandomExtractWithinSubsets(GeoAlgorithm):
|
|||||||
"correct value and try again."))
|
"correct value and try again."))
|
||||||
value = value / 100.0
|
value = value / 100.0
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields().toList(), layer.wkbType(),
|
||||||
layer.fields().toList(), layer.wkbType(), layer.crs())
|
layer.crs(), context)
|
||||||
|
|
||||||
selran = []
|
selran = []
|
||||||
total = 100.0 / (featureCount * len(unique))
|
total = 100.0 / (featureCount * len(unique))
|
||||||
|
@ -88,8 +88,7 @@ class RandomPointsAlongLines(GeoAlgorithm):
|
|||||||
|
|
||||||
fields = QgsFields()
|
fields = QgsFields()
|
||||||
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Point, layer.crs(), context)
|
||||||
fields, QgsWkbTypes.Point, layer.crs())
|
|
||||||
|
|
||||||
nPoints = 0
|
nPoints = 0
|
||||||
nIterations = 0
|
nIterations = 0
|
||||||
|
@ -97,8 +97,7 @@ class RandomPointsExtent(GeoAlgorithm):
|
|||||||
|
|
||||||
fields = QgsFields()
|
fields = QgsFields()
|
||||||
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Point, crs, context)
|
||||||
fields, QgsWkbTypes.Point, crs)
|
|
||||||
|
|
||||||
nPoints = 0
|
nPoints = 0
|
||||||
nIterations = 0
|
nIterations = 0
|
||||||
|
@ -83,8 +83,7 @@ class RandomPointsLayer(GeoAlgorithm):
|
|||||||
|
|
||||||
fields = QgsFields()
|
fields = QgsFields()
|
||||||
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Point, layer.crs(), context)
|
||||||
fields, QgsWkbTypes.Point, layer.crs())
|
|
||||||
|
|
||||||
nPoints = 0
|
nPoints = 0
|
||||||
nIterations = 0
|
nIterations = 0
|
||||||
|
@ -89,8 +89,7 @@ class RandomPointsPolygonsFixed(GeoAlgorithm):
|
|||||||
|
|
||||||
fields = QgsFields()
|
fields = QgsFields()
|
||||||
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Point, layer.crs(), context)
|
||||||
fields, QgsWkbTypes.Point, layer.crs())
|
|
||||||
|
|
||||||
da = QgsDistanceArea()
|
da = QgsDistanceArea()
|
||||||
|
|
||||||
|
@ -90,8 +90,7 @@ class RandomPointsPolygonsVariable(GeoAlgorithm):
|
|||||||
|
|
||||||
fields = QgsFields()
|
fields = QgsFields()
|
||||||
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Point, layer.crs(), context)
|
||||||
fields, QgsWkbTypes.Point, layer.crs())
|
|
||||||
|
|
||||||
da = QgsDistanceArea()
|
da = QgsDistanceArea()
|
||||||
|
|
||||||
|
@ -102,10 +102,7 @@ class RectanglesOvalsDiamondsFixed(GeoAlgorithm):
|
|||||||
segments = self.getParameterValue(self.SEGMENTS)
|
segments = self.getParameterValue(self.SEGMENTS)
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields().toList(), QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
layer.fields().toList(),
|
|
||||||
QgsWkbTypes.Polygon,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
|
|
||||||
|
@ -111,10 +111,7 @@ class RectanglesOvalsDiamondsVariable(GeoAlgorithm):
|
|||||||
segments = self.getParameterValue(self.SEGMENTS)
|
segments = self.getParameterValue(self.SEGMENTS)
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields().toList(), QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
layer.fields().toList(),
|
|
||||||
QgsWkbTypes.Polygon,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
|
|
||||||
|
@ -101,8 +101,7 @@ class RegularPoints(GeoAlgorithm):
|
|||||||
fields = QgsFields()
|
fields = QgsFields()
|
||||||
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
fields.append(QgsField('id', QVariant.Int, '', 10, 0))
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, QgsWkbTypes.Point, crs, context)
|
||||||
fields, QgsWkbTypes.Point, crs)
|
|
||||||
|
|
||||||
if randomize:
|
if randomize:
|
||||||
seed()
|
seed()
|
||||||
|
@ -65,10 +65,7 @@ class RemoveNullGeometry(GeoAlgorithm):
|
|||||||
layer = dataobjects.getLayerFromString(
|
layer = dataobjects.getLayerFromString(
|
||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields(), layer.wkbType(), layer.crs(), context)
|
||||||
layer.fields(),
|
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -73,8 +73,8 @@ class ReprojectLayer(GeoAlgorithm):
|
|||||||
targetCrs = QgsCoordinateReferenceSystem()
|
targetCrs = QgsCoordinateReferenceSystem()
|
||||||
targetCrs.createFromUserInput(crsId)
|
targetCrs.createFromUserInput(crsId)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields().toList(), layer.wkbType(),
|
||||||
layer.fields().toList(), layer.wkbType(), targetCrs)
|
targetCrs, context)
|
||||||
|
|
||||||
layerCrs = layer.crs()
|
layerCrs = layer.crs()
|
||||||
crsTransform = QgsCoordinateTransform(layerCrs, targetCrs)
|
crsTransform = QgsCoordinateTransform(layerCrs, targetCrs)
|
||||||
|
@ -66,10 +66,7 @@ class ReverseLineDirection(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields().toList(), layer.wkbType(), layer.crs(), context)
|
||||||
layer.fields().toList(),
|
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
|
|
||||||
|
@ -65,8 +65,7 @@ class SaveSelectedFeatures(GeoAlgorithm):
|
|||||||
|
|
||||||
vectorLayer = dataobjects.getLayerFromString(inputFilename)
|
vectorLayer = dataobjects.getLayerFromString(inputFilename)
|
||||||
|
|
||||||
writer = output.getVectorWriter(vectorLayer.fields(),
|
writer = output.getVectorWriter(vectorLayer.fields(), vectorLayer.wkbType(), vectorLayer.crs(), context)
|
||||||
vectorLayer.wkbType(), vectorLayer.crs())
|
|
||||||
|
|
||||||
features = vectorLayer.selectedFeaturesIterator()
|
features = vectorLayer.selectedFeaturesIterator()
|
||||||
total = 100.0 / int(vectorLayer.selectedFeatureCount())
|
total = 100.0 / int(vectorLayer.selectedFeatureCount())
|
||||||
|
@ -176,16 +176,10 @@ class ServiceAreaFromLayer(GeoAlgorithm):
|
|||||||
feat.setFields(fields)
|
feat.setFields(fields)
|
||||||
|
|
||||||
writerPoints = self.getOutputFromName(
|
writerPoints = self.getOutputFromName(
|
||||||
self.OUTPUT_POINTS).getVectorWriter(
|
self.OUTPUT_POINTS).getVectorWriter(fields, QgsWkbTypes.MultiPoint, layer.crs(), context)
|
||||||
fields,
|
|
||||||
QgsWkbTypes.MultiPoint,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
writerPolygons = self.getOutputFromName(
|
writerPolygons = self.getOutputFromName(
|
||||||
self.OUTPUT_POLYGON).getVectorWriter(
|
self.OUTPUT_POLYGON).getVectorWriter(fields, QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
fields,
|
|
||||||
QgsWkbTypes.Polygon,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
directionField = -1
|
directionField = -1
|
||||||
if directionFieldName is not None:
|
if directionFieldName is not None:
|
||||||
|
@ -231,10 +231,7 @@ class ServiceAreaFromPoint(GeoAlgorithm):
|
|||||||
geomLower = QgsGeometry.fromMultiPoint(lowerBoundary)
|
geomLower = QgsGeometry.fromMultiPoint(lowerBoundary)
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_POINTS).getVectorWriter(
|
self.OUTPUT_POINTS).getVectorWriter(fields, QgsWkbTypes.MultiPoint, layer.crs(), context)
|
||||||
fields,
|
|
||||||
QgsWkbTypes.MultiPoint,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
feat.setGeometry(geomUpper)
|
feat.setGeometry(geomUpper)
|
||||||
feat['type'] = 'upper'
|
feat['type'] = 'upper'
|
||||||
@ -254,10 +251,7 @@ class ServiceAreaFromPoint(GeoAlgorithm):
|
|||||||
geomLower = QgsGeometry.fromMultiPoint(lowerBoundary)
|
geomLower = QgsGeometry.fromMultiPoint(lowerBoundary)
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_POLYGON).getVectorWriter(
|
self.OUTPUT_POLYGON).getVectorWriter(fields, QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
fields,
|
|
||||||
QgsWkbTypes.Polygon,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
geom = geomUpper.convexHull()
|
geom = geomUpper.convexHull()
|
||||||
feat.setGeometry(geom)
|
feat.setGeometry(geom)
|
||||||
|
@ -182,10 +182,7 @@ class ShortestPathLayerToPoint(GeoAlgorithm):
|
|||||||
feat.setFields(fields)
|
feat.setFields(fields)
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(fields.toList(), QgsWkbTypes.LineString, layer.crs(), context)
|
||||||
fields.toList(),
|
|
||||||
QgsWkbTypes.LineString,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
tmp = endPoint.split(',')
|
tmp = endPoint.split(',')
|
||||||
endPoint = QgsPoint(float(tmp[0]), float(tmp[1]))
|
endPoint = QgsPoint(float(tmp[0]), float(tmp[1]))
|
||||||
|
@ -175,10 +175,7 @@ class ShortestPathPointToLayer(GeoAlgorithm):
|
|||||||
feat.setFields(fields)
|
feat.setFields(fields)
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(fields.toList(), QgsWkbTypes.LineString, layer.crs(), context)
|
||||||
fields.toList(),
|
|
||||||
QgsWkbTypes.LineString,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
tmp = startPoint.split(',')
|
tmp = startPoint.split(',')
|
||||||
startPoint = QgsPoint(float(tmp[0]), float(tmp[1]))
|
startPoint = QgsPoint(float(tmp[0]), float(tmp[1]))
|
||||||
|
@ -174,10 +174,7 @@ class ShortestPathPointToPoint(GeoAlgorithm):
|
|||||||
fields.append(QgsField('cost', QVariant.Double, '', 20, 7))
|
fields.append(QgsField('cost', QVariant.Double, '', 20, 7))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(fields.toList(), QgsWkbTypes.LineString, layer.crs(), context)
|
||||||
fields.toList(),
|
|
||||||
QgsWkbTypes.LineString,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
tmp = startPoint.split(',')
|
tmp = startPoint.split(',')
|
||||||
startPoint = QgsPoint(float(tmp[0]), float(tmp[1]))
|
startPoint = QgsPoint(float(tmp[0]), float(tmp[1]))
|
||||||
|
@ -86,8 +86,8 @@ class SimplifyGeometries(GeoAlgorithm):
|
|||||||
pointsBefore = 0
|
pointsBefore = 0
|
||||||
pointsAfter = 0
|
pointsAfter = 0
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields().toList(), layer.wkbType(),
|
||||||
layer.fields().toList(), layer.wkbType(), layer.crs())
|
layer.crs(), context)
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -72,8 +72,8 @@ class SinglePartsToMultiparts(GeoAlgorithm):
|
|||||||
|
|
||||||
geomType = QgsWkbTypes.multiType(layer.wkbType())
|
geomType = QgsWkbTypes.multiType(layer.wkbType())
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields().toList(), geomType, layer.crs(),
|
||||||
layer.fields().toList(), geomType, layer.crs())
|
context)
|
||||||
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
inGeom = QgsGeometry()
|
inGeom = QgsGeometry()
|
||||||
|
@ -98,10 +98,7 @@ class SingleSidedBuffer(GeoAlgorithm):
|
|||||||
self.getParameterValue(self.INPUT_LAYER))
|
self.getParameterValue(self.INPUT_LAYER))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields().toList(), QgsWkbTypes.Polygon, layer.crs(), context)
|
||||||
layer.fields().toList(),
|
|
||||||
QgsWkbTypes.Polygon,
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
distance = self.getParameterValue(self.DISTANCE)
|
distance = self.getParameterValue(self.DISTANCE)
|
||||||
segments = int(self.getParameterValue(self.SEGMENTS))
|
segments = int(self.getParameterValue(self.SEGMENTS))
|
||||||
|
@ -76,10 +76,7 @@ class Smooth(GeoAlgorithm):
|
|||||||
max_angle = self.getParameterValue(self.MAX_ANGLE)
|
max_angle = self.getParameterValue(self.MAX_ANGLE)
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(layer.fields().toList(), layer.wkbType(), layer.crs(), context)
|
||||||
layer.fields().toList(),
|
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
total = 100.0 / QgsProcessingUtils.featureCount(layer, context)
|
||||||
|
@ -82,8 +82,8 @@ class SnapGeometriesToLayer(GeoAlgorithm):
|
|||||||
tolerance = self.getParameterValue(self.TOLERANCE)
|
tolerance = self.getParameterValue(self.TOLERANCE)
|
||||||
mode = self.getParameterValue(self.BEHAVIOR)
|
mode = self.getParameterValue(self.BEHAVIOR)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(layer.fields(), layer.wkbType(), layer.crs(),
|
||||||
layer.fields(), layer.wkbType(), layer.crs())
|
context)
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
|
|
||||||
|
@ -150,8 +150,7 @@ class SpatialJoin(GeoAlgorithm):
|
|||||||
for f in list(targetFields.values()):
|
for f in list(targetFields.values()):
|
||||||
fields.append(f)
|
fields.append(f)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, target.wkbType(), target.crs(), context)
|
||||||
fields, target.wkbType(), target.crs())
|
|
||||||
|
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
inFeatB = QgsFeature()
|
inFeatB = QgsFeature()
|
||||||
|
@ -82,8 +82,8 @@ class SplitLinesWithLines(GeoAlgorithm):
|
|||||||
sameLayer = self.getParameterValue(self.INPUT_A) == self.getParameterValue(self.INPUT_B)
|
sameLayer = self.getParameterValue(self.INPUT_A) == self.getParameterValue(self.INPUT_B)
|
||||||
fieldList = layerA.fields()
|
fieldList = layerA.fields()
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fieldList,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fieldList, QgsWkbTypes.LineString, layerA.crs(),
|
||||||
QgsWkbTypes.LineString, layerA.crs())
|
context)
|
||||||
|
|
||||||
spatialIndex = vector.spatialindex(layerB)
|
spatialIndex = vector.spatialindex(layerB)
|
||||||
|
|
||||||
|
@ -78,8 +78,8 @@ class SplitWithLines(GeoAlgorithm):
|
|||||||
sameLayer = self.getParameterValue(self.INPUT_A) == self.getParameterValue(self.INPUT_B)
|
sameLayer = self.getParameterValue(self.INPUT_A) == self.getParameterValue(self.INPUT_B)
|
||||||
fieldList = layerA.fields()
|
fieldList = layerA.fields()
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fieldList,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fieldList, QgsWkbTypes.multiType(layerA.wkbType()),
|
||||||
QgsWkbTypes.multiType(layerA.wkbType()), layerA.crs())
|
layerA.crs(), context)
|
||||||
|
|
||||||
spatialIndex = QgsSpatialIndex()
|
spatialIndex = QgsSpatialIndex()
|
||||||
splitGeoms = {}
|
splitGeoms = {}
|
||||||
|
@ -83,8 +83,8 @@ class SumLines(GeoAlgorithm):
|
|||||||
(idxCount, fieldList) = vector.findOrCreateField(polyLayer, fieldList,
|
(idxCount, fieldList) = vector.findOrCreateField(polyLayer, fieldList,
|
||||||
countFieldName)
|
countFieldName)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fieldList.toList(), polyLayer.wkbType(),
|
||||||
fieldList.toList(), polyLayer.wkbType(), polyLayer.crs())
|
polyLayer.crs(), context)
|
||||||
|
|
||||||
spatialIndex = vector.spatialindex(lineLayer)
|
spatialIndex = vector.spatialindex(lineLayer)
|
||||||
|
|
||||||
|
@ -78,8 +78,7 @@ class SymmetricalDifference(GeoAlgorithm):
|
|||||||
|
|
||||||
geomType = QgsWkbTypes.multiType(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(), context)
|
||||||
fields, geomType, layerA.crs())
|
|
||||||
|
|
||||||
featB = QgsFeature()
|
featB = QgsFeature()
|
||||||
outFeat = QgsFeature()
|
outFeat = QgsFeature()
|
||||||
|
@ -72,8 +72,7 @@ class TextToFloat(GeoAlgorithm):
|
|||||||
fields = layer.fields()
|
fields = layer.fields()
|
||||||
fields[idx] = QgsField(fieldName, QVariant.Double, '', 24, 15)
|
fields[idx] = QgsField(fieldName, QVariant.Double, '', 24, 15)
|
||||||
|
|
||||||
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
|
writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, layer.wkbType(), layer.crs(), context)
|
||||||
layer.wkbType(), layer.crs())
|
|
||||||
|
|
||||||
features = QgsProcessingUtils.getFeatures(layer, context)
|
features = QgsProcessingUtils.getFeatures(layer, context)
|
||||||
|
|
||||||
|
@ -104,10 +104,7 @@ class TopoColor(GeoAlgorithm):
|
|||||||
fields.append(QgsField('color_id', QVariant.Int))
|
fields.append(QgsField('color_id', QVariant.Int))
|
||||||
|
|
||||||
writer = self.getOutputFromName(
|
writer = self.getOutputFromName(
|
||||||
self.OUTPUT_LAYER).getVectorWriter(
|
self.OUTPUT_LAYER).getVectorWriter(fields, layer.wkbType(), layer.crs(), context)
|
||||||
fields,
|
|
||||||
layer.wkbType(),
|
|
||||||
layer.crs())
|
|
||||||
|
|
||||||
features = {f.id(): f for f in QgsProcessingUtils.getFeatures(layer, context)}
|
features = {f.id(): f for f in QgsProcessingUtils.getFeatures(layer, context)}
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user