28
28
import os
29
29
import re
30
30
31
- from qgis .core import (QgsCoordinateReferenceSystem ,
32
- QgsApplication ,
33
- QgsProcessingUtils )
34
- from qgis . utils import iface
31
+ from qgis .core import (QgsProcessing ,
32
+ QgsProcessingParameterVectorLayer ,
33
+ QgsProcessingParameterCrs ,
34
+ QgsProcessingOutputVectorLayer )
35
35
36
36
from processing .algs .qgis .QgisAlgorithm import QgisAlgorithm
37
- from processing .core .parameters import ParameterVector
38
- from processing .core .parameters import ParameterCrs
39
- from processing .core .outputs import OutputVector
40
37
41
38
pluginPath = os .path .split (os .path .split (os .path .dirname (__file__ ))[0 ])[0 ]
42
39
@@ -45,7 +42,6 @@ class DefineProjection(QgisAlgorithm):
45
42
46
43
INPUT = 'INPUT'
47
44
CRS = 'CRS'
48
- OUTPUT = 'OUTPUT'
49
45
50
46
def group (self ):
51
47
return self .tr ('Vector general tools' )
@@ -54,11 +50,11 @@ def __init__(self):
54
50
super ().__init__ ()
55
51
56
52
def initAlgorithm (self , config = None ):
57
- self .addParameter (ParameterVector (self .INPUT ,
58
- self .tr ('Input Layer' )))
59
- self .addParameter (ParameterCrs (self .CRS , 'Output CRS' ))
60
- self .addOutput (OutputVector (self .OUTPUT ,
61
- self .tr ('Layer with projection' ), True ))
53
+ self .addParameter (QgsProcessingParameterVectorLayer (self .INPUT ,
54
+ self .tr ('Input Layer' ), types = [ QgsProcessing . TypeVectorAnyGeometry ] ))
55
+ self .addParameter (QgsProcessingParameterCrs (self .CRS , 'Output CRS' ))
56
+ self .addOutput (QgsProcessingOutputVectorLayer (self .INPUT ,
57
+ self .tr ('Layer with projection' )))
62
58
63
59
def name (self ):
64
60
return 'definecurrentprojection'
@@ -67,9 +63,8 @@ def displayName(self):
67
63
return self .tr ('Define current projection' )
68
64
69
65
def processAlgorithm (self , parameters , context , feedback ):
70
- fileName = self .getParameterValue (self .INPUT )
71
- layer = QgsProcessingUtils .mapLayerFromString (fileName , context )
72
- crs = QgsCoordinateReferenceSystem (self .getParameterValue (self .CRS ))
66
+ layer = self .parameterAsVectorLayer (parameters , self .INPUT , context )
67
+ crs = self .parameterAsCrs (parameters , self .CRS , context )
73
68
74
69
provider = layer .dataProvider ()
75
70
ds = provider .dataSourceUri ()
@@ -89,6 +84,6 @@ def processAlgorithm(self, parameters, context, feedback):
89
84
f .write (wkt )
90
85
91
86
layer .setCrs (crs )
92
- iface . mapCanvas (). refresh ()
87
+ layer . triggerRepaint ()
93
88
94
- self .setOutputValue ( self . OUTPUT , fileName )
89
+ return { self .INPUT : layer }
0 commit comments