[Qgis-user] QGIS 3 Processing question

Frank Broniewski hallo at frankbroniewski.com
Thu Jun 28 14:13:51 PDT 2018


Hi all,

 

I am getting my feet wet with the new QGIS 3 Processing script syntax. In my
script I want to use some other processing scripts from the toolbox. I think
I got most things right, but I do not get a result back. For testing I just
try to use ‘qgis:pointsalonglines’ on a temporary polygon layer and return
the points as a result. Here’s what I have so far:

 

def initAlgorithm(self, config=None):

        self.addParameter(

            QgsProcessingParameterFeatureSource(

                self.INPUT,

                self.tr("Vector Polygon Layer"),

                [QgsProcessing.TypeVectorPolygon]

            )

        )

        [
]

        self.addParameter(

            QgsProcessingParameterFeatureSink(

                self.OUTPUT,

                self.tr('Center line'),

                QgsProcessing.TypeVectorAnyGeometry

            )

        )

 

 

    def processAlgorithm(self, parameters, context, feedback):

        source = self.parameterAsSource(parameters, self.INPUT, context)

        # turn QgsProcessingParameterFeature - the source -  into a 

        # QgsVectorLayer apparently self.parameterAsVectorLayer() does 

        # not work on temporary layers so this step is required to use

        # the input layer in processing algorithms

        source_vl = source.materialize(QgsFeatureRequest())

 

        pt_value = [
]

 

        # qgis:pointsalonglines

        params = {

            'INPUT': source_vl, 

            'DISTANCE': pt_value,

            'START_OFFSET': 0,

            'END_OFFSET': 0,

            'OUTPUT': 'memory:'

        }

 

        points = processing.run(

            'qgis:pointsalonglines', 

            params, context=context, feedback=feedback

        )['OUTPUT']

        return {self.OUTPUT: points}

 

 

running the script gives the following output in the processing window
(including some debug info not included above):

 

Eingabeparameter:

{ 'DISTANCE' : 10, 'INPUT' :
'Polygon?crs=EPSG:31466&uid={e1a2d6cf-0cac-46f5-b1c8-ee208c497d22}',
'OUTPUT' : 'memory:' }

 

<class 'qgis._core.QgsProcessingFeatureSource'>

Ergebnisse: {'OUTPUT': 'output_953bb179_3f12_4312_89e4_5ffa13e8336b'}

<class 'qgis._core.QgsVectorLayer'>

Ausführung nach 0.03 Sekunden abgeschlossen

Ergebisse:

{'OUTPUT': <PyQt5.QtCore.QObject object at 0x0000023FC2CEBC18>}

 

Lade Ergebnis Layer

Algorithmus 'None' beendet

 

The last output line does not look right to me, any idea what I am doing
wrong here?

 

Many thanks,

Frank

 

 

Dipl. Geogr. Frank Broniewski

Waldhölzbacher Str. 51

66679 Losheim am See

06872 509 068 4

0176 611 26 9 2 6

 <http://www.frankbroniewski.com> www.frankbroniewski.com

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20180628/723416bd/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5488 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20180628/723416bd/attachment.bin>


More information about the Qgis-user mailing list