mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
Fix tests
This commit is contained in:
parent
7a1fd93ace
commit
8cfcf57541
@ -49,7 +49,7 @@ class Aspect(QgisAlgorithm):
|
||||
|
||||
INPUT = 'INPUT'
|
||||
Z_FACTOR = 'Z_FACTOR'
|
||||
OUTPUT_LAYER = 'OUTPUT_LAYER'
|
||||
OUTPUT = 'OUTPUT'
|
||||
|
||||
def icon(self):
|
||||
return QIcon(os.path.join(pluginPath, 'images', 'dem.png'))
|
||||
|
@ -28,10 +28,8 @@ __revision__ = '$Format:%H$'
|
||||
from qgis.core import (QgsApplication,
|
||||
QgsWkbTypes,
|
||||
QgsPoint,
|
||||
QgsCoordinateReferenceSystem,
|
||||
QgsFeatureRequest,
|
||||
QgsGeometry,
|
||||
QgsProcessingUtils,
|
||||
QgsProcessingParameterDefinition,
|
||||
QgsProcessingParameterFeatureSink,
|
||||
QgsProcessingParameterFeatureSource,
|
||||
@ -39,11 +37,6 @@ from qgis.core import (QgsApplication,
|
||||
QgsProcessingOutputVectorLayer,
|
||||
QgsProcessingParameterField)
|
||||
from processing.algs.qgis.QgisAlgorithm import QgisAlgorithm
|
||||
from processing.core.parameters import ParameterTable
|
||||
from processing.core.parameters import ParameterTableField
|
||||
from processing.core.parameters import ParameterCrs
|
||||
from processing.core.outputs import OutputVector
|
||||
from processing.tools import dataobjects
|
||||
|
||||
|
||||
class PointsLayerFromTable(QgisAlgorithm):
|
||||
@ -87,39 +80,49 @@ class PointsLayerFromTable(QgisAlgorithm):
|
||||
self.addParameter(QgsProcessingParameterFeatureSink(self.OUTPUT, self.tr('Points from table'), type=QgsProcessingParameterDefinition.TypeVectorPoint))
|
||||
self.addOutput(QgsProcessingOutputVectorLayer(self.OUTPUT, self.tr('Points from table'), type=QgsProcessingParameterDefinition.TypeVectorPoint))
|
||||
|
||||
self.source = None
|
||||
self.x_field_index = None
|
||||
self.y_field_index = None
|
||||
self.z_field_index = None
|
||||
self.m_field_index = None
|
||||
self.sink = None
|
||||
self.dest_id = None
|
||||
|
||||
def name(self):
|
||||
return 'createpointslayerfromtable'
|
||||
|
||||
def displayName(self):
|
||||
return self.tr('Create points layer from table')
|
||||
|
||||
def processAlgorithm(self, parameters, context, feedback):
|
||||
source = self.parameterAsSource(parameters, self.INPUT, context)
|
||||
def prepareAlgorithm(self, parameters, context, feedback):
|
||||
self.source = self.parameterAsSource(parameters, self.INPUT, context)
|
||||
|
||||
fields = source.fields()
|
||||
x_field_index = fields.lookupField(self.parameterAsString(parameters, self.XFIELD, context))
|
||||
y_field_index = fields.lookupField(self.parameterAsString(parameters, self.YFIELD, context))
|
||||
z_field_index = -1
|
||||
fields = self.source.fields()
|
||||
self.x_field_index = fields.lookupField(self.parameterAsString(parameters, self.XFIELD, context))
|
||||
self.y_field_index = fields.lookupField(self.parameterAsString(parameters, self.YFIELD, context))
|
||||
self.z_field_index = -1
|
||||
if self.parameterAsString(parameters, self.ZFIELD, context):
|
||||
z_field_index = fields.lookupField(self.parameterAsString(parameters, self.ZFIELD, context))
|
||||
m_field_index = -1
|
||||
self.z_field_index = fields.lookupField(self.parameterAsString(parameters, self.ZFIELD, context))
|
||||
self.m_field_index = -1
|
||||
if self.parameterAsString(parameters, self.MFIELD, context):
|
||||
m_field_index = fields.lookupField(self.parameterAsString(parameters, self.MFIELD, context))
|
||||
self.m_field_index = fields.lookupField(self.parameterAsString(parameters, self.MFIELD, context))
|
||||
|
||||
wkb_type = QgsWkbTypes.Point
|
||||
if z_field_index >= 0:
|
||||
if self.z_field_index >= 0:
|
||||
wkb_type = QgsWkbTypes.addZ(wkb_type)
|
||||
if m_field_index >= 0:
|
||||
if self.m_field_index >= 0:
|
||||
wkb_type = QgsWkbTypes.addM(wkb_type)
|
||||
|
||||
target_crs = self.parameterAsCrs(parameters, self.TARGET_CRS, context)
|
||||
|
||||
(sink, dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
|
||||
fields, wkb_type, target_crs)
|
||||
(self.sink, self.dest_id) = self.parameterAsSink(parameters, self.OUTPUT, context,
|
||||
fields, wkb_type, target_crs)
|
||||
return True
|
||||
|
||||
def processAlgorithm(self, context, feedback):
|
||||
request = QgsFeatureRequest().setFlags(QgsFeatureRequest.NoGeometry)
|
||||
features = source.getFeatures()
|
||||
total = 100.0 / source.featureCount() if source.featureCount() else 0
|
||||
features = self.source.getFeatures(request)
|
||||
total = 100.0 / self.source.featureCount() if self.source.featureCount() else 0
|
||||
|
||||
for current, feature in enumerate(features):
|
||||
if feedback.isCanceled():
|
||||
@ -129,20 +132,20 @@ class PointsLayerFromTable(QgisAlgorithm):
|
||||
attrs = feature.attributes()
|
||||
|
||||
try:
|
||||
x = float(attrs[x_field_index])
|
||||
y = float(attrs[y_field_index])
|
||||
x = float(attrs[self.x_field_index])
|
||||
y = float(attrs[self.y_field_index])
|
||||
|
||||
point = QgsPoint(x, y)
|
||||
|
||||
if z_field_index >= 0:
|
||||
if self.z_field_index >= 0:
|
||||
try:
|
||||
point.addZValue(float(attrs[z_field_index]))
|
||||
point.addZValue(float(attrs[self.z_field_index]))
|
||||
except:
|
||||
point.addZValue(0.0)
|
||||
|
||||
if m_field_index >= 0:
|
||||
if self.m_field_index >= 0:
|
||||
try:
|
||||
point.addMValue(float(attrs[m_field_index]))
|
||||
point.addMValue(float(attrs[self.m_field_index]))
|
||||
except:
|
||||
point.addMValue(0.0)
|
||||
|
||||
@ -150,6 +153,8 @@ class PointsLayerFromTable(QgisAlgorithm):
|
||||
except:
|
||||
pass # no geometry
|
||||
|
||||
sink.addFeature(feature)
|
||||
self.sink.addFeature(feature)
|
||||
return True
|
||||
|
||||
return {self.OUTPUT: dest_id}
|
||||
def postProcessAlgorithm(self, context, feedback):
|
||||
return {self.OUTPUT: self.dest_id}
|
||||
|
Loading…
x
Reference in New Issue
Block a user