Port define projection to new API

This commit is contained in:
Nyall Dawson 2017-08-20 01:00:59 +10:00
parent cfb926a70d
commit 2a6847e030
2 changed files with 15 additions and 20 deletions

View File

@ -28,15 +28,12 @@ __revision__ = '$Format:%H$'
import os
import re
from qgis.core import (QgsCoordinateReferenceSystem,
QgsApplication,
QgsProcessingUtils)
from qgis.utils import iface
from qgis.core import (QgsProcessing,
QgsProcessingParameterVectorLayer,
QgsProcessingParameterCrs,
QgsProcessingOutputVectorLayer)
from processing.algs.qgis.QgisAlgorithm import QgisAlgorithm
from processing.core.parameters import ParameterVector
from processing.core.parameters import ParameterCrs
from processing.core.outputs import OutputVector
pluginPath = os.path.split(os.path.split(os.path.dirname(__file__))[0])[0]
@ -45,7 +42,6 @@ class DefineProjection(QgisAlgorithm):
INPUT = 'INPUT'
CRS = 'CRS'
OUTPUT = 'OUTPUT'
def group(self):
return self.tr('Vector general tools')
@ -54,11 +50,11 @@ class DefineProjection(QgisAlgorithm):
super().__init__()
def initAlgorithm(self, config=None):
self.addParameter(ParameterVector(self.INPUT,
self.tr('Input Layer')))
self.addParameter(ParameterCrs(self.CRS, 'Output CRS'))
self.addOutput(OutputVector(self.OUTPUT,
self.tr('Layer with projection'), True))
self.addParameter(QgsProcessingParameterVectorLayer(self.INPUT,
self.tr('Input Layer'), types=[QgsProcessing.TypeVectorAnyGeometry]))
self.addParameter(QgsProcessingParameterCrs(self.CRS, 'Output CRS'))
self.addOutput(QgsProcessingOutputVectorLayer(self.INPUT,
self.tr('Layer with projection')))
def name(self):
return 'definecurrentprojection'
@ -67,9 +63,8 @@ class DefineProjection(QgisAlgorithm):
return self.tr('Define current projection')
def processAlgorithm(self, parameters, context, feedback):
fileName = self.getParameterValue(self.INPUT)
layer = QgsProcessingUtils.mapLayerFromString(fileName, context)
crs = QgsCoordinateReferenceSystem(self.getParameterValue(self.CRS))
layer = self.parameterAsVectorLayer(parameters, self.INPUT, context)
crs = self.parameterAsCrs(parameters, self.CRS, context)
provider = layer.dataProvider()
ds = provider.dataSourceUri()
@ -89,6 +84,6 @@ class DefineProjection(QgisAlgorithm):
f.write(wkt)
layer.setCrs(crs)
iface.mapCanvas().refresh()
layer.triggerRepaint()
self.setOutputValue(self.OUTPUT, fileName)
return {self.INPUT: layer}

View File

@ -53,6 +53,7 @@ from .ConvexHull import ConvexHull
from .CreateAttributeIndex import CreateAttributeIndex
from .CreateConstantRaster import CreateConstantRaster
from .Datasources2Vrt import Datasources2Vrt
from .DefineProjection import DefineProjection
from .Delaunay import Delaunay
from .DeleteColumn import DeleteColumn
from .DeleteDuplicateGeometries import DeleteDuplicateGeometries
@ -170,7 +171,6 @@ from .ZonalStatistics import ZonalStatistics
# from .SpatialJoin import SpatialJoin
# from .GeometryConvert import GeometryConvert
# from .SelectByAttributeSum import SelectByAttributeSum
# from .DefineProjection import DefineProjection
# from .RasterCalculator import RasterCalculator
# from .ExecuteSQL import ExecuteSQL
@ -192,7 +192,6 @@ class QGISAlgorithmProvider(QgsProcessingProvider):
# SpatialJoin(),
# GeometryConvert(),
# SelectByAttributeSum()
# DefineProjection(),
# RasterCalculator(),
# ExecuteSQL(),
# ]
@ -209,6 +208,7 @@ class QGISAlgorithmProvider(QgsProcessingProvider):
CreateAttributeIndex(),
CreateConstantRaster(),
Datasources2Vrt(),
DefineProjection(),
Delaunay(),
DeleteColumn(),
DeleteDuplicateGeometries(),