[QGIS-Developer] Processing Feature Sink Questions

C Hamilton adenaculture at gmail.com
Tue Aug 28 13:03:22 PDT 2018


I am working on a processing routine that can take a source that
potentially has points, lines and polygons. I define 3 feature sinks for
the 3 geometries and they are optional. This example is for the points.

        self.addParameter(
            QgsProcessingParameterFeatureSink(
                self.PrmPointOutputLayer,
                tr('Output point layer'),
                optional=True)
            )

1) How doe I know in the processAlgorithm whether the user has this set a
feature sink to "Skip Output"?

2) I really don't know whether I have points, lines, and/or polygons until
I process the file and from the 3 feature sinks I just add the data to the
appropriate feature sink as I receive it . How do a get a count of the
number of features once I have processed the file from sinkPt or dest_id_pt?

        (sinkPt, dest_id_pt) = self.parameterAsSink(parameters,
            self.PrmPointOutputLayer, context, fields,
            QgsWkbTypes.Point, epsg4326)

"sinkPt" seems to only have the ability to add features and not count them.

3) I see to reason to return a layer to QGIS if it has no data which is the
reason to check the feature count. In the processAlgorithm return statement
do I only return those layers that have data?

        return {
            self.PrmPointOutputLayer: dest_id_pt,
            self.PrmLineOutputLayer: dest_id_line,
            self.PrmPolygonOutputLayer: dest_id_poly
            }

Thanks,

Calvin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20180828/e115646d/attachment.html>


More information about the QGIS-Developer mailing list