Esempio n. 1
0
    def initAlgorithm(self, config=None):
        self.addParameter(QgsProcessingParameterFeatureSource(self.INPUT,
                                                              self.tr('Input point layer'), [QgsProcessing.TypeVectorPoint]))
        self.addParameter(QgsProcessingParameterField(self.ORDER_FIELD,
                                                      self.tr('Order field'), parentLayerParameterName=self.INPUT))
        self.addParameter(QgsProcessingParameterField(self.GROUP_FIELD,
                                                      self.tr('Group field'), parentLayerParameterName=self.INPUT, optional=True))
        self.addParameter(QgsProcessingParameterString(self.DATE_FORMAT,
                                                       self.tr('Date format (if order field is DateTime)'), optional=True))
        mvalue_param = QgsProcessingParameterExpression(self.MVALUE_EXPRESSION,
                                                        self.tr('M value (if you want an XYM or XYZM output)'), optional=True, parentLayerParameterName=self.INPUT)
        mvalue_param.setFlags(mvalue_param.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(mvalue_param)

        self.addParameter(QgsProcessingParameterFeatureSink(self.OUTPUT, self.tr('Paths'), QgsProcessing.TypeVectorLine))
        output_dir_param = QgsProcessingParameterFolderDestination(self.OUTPUT_TEXT_DIR, self.tr('Directory for text output'), optional=True)
        output_dir_param.setCreateByDefault(False)
        self.addParameter(output_dir_param)
    def initAlgorithm(self, config=None):
        self.strategies = [self.tr('Points count'), self.tr('Points density')]

        self.addParameter(
            QgsProcessingParameterFeatureSource(
                self.INPUT, self.tr('Input layer'),
                [QgsProcessing.TypeVectorPolygon]))
        self.addParameter(
            QgsProcessingParameterEnum(self.STRATEGY,
                                       self.tr('Sampling strategy'),
                                       self.strategies, False, 0))
        value_param = QgsProcessingParameterNumber(
            self.VALUE,
            self.tr('Point count or density'),
            QgsProcessingParameterNumber.Double,
            1,
            minValue=0)
        value_param.setIsDynamic(True)
        value_param.setDynamicLayerParameterName(self.INPUT)
        value_param.setDynamicPropertyDefinition(
            QgsPropertyDefinition("Value", self.tr("Point count or density"),
                                  QgsPropertyDefinition.Double))
        self.addParameter(value_param)

        # deprecated expression parameter - overrides value parameter if set
        exp_param = QgsProcessingParameterExpression(
            self.EXPRESSION,
            self.tr('Expression'),
            optional=True,
            parentLayerParameterName=self.INPUT)
        exp_param.setFlags(exp_param.flags()
                           | QgsProcessingParameterDefinition.FlagHidden)
        self.addParameter(exp_param)

        self.addParameter(
            QgsProcessingParameterDistance(
                self.MIN_DISTANCE, self.tr('Minimum distance between points'),
                None, self.INPUT, True, 0, 1000000000))
        self.addParameter(
            QgsProcessingParameterFeatureSink(
                self.OUTPUT,
                self.tr('Random points'),
                type=QgsProcessing.TypeVectorPoint))
Esempio n. 3
0
    def initAlgorithm(self, config=None):
        self.addParameter(
            QgsProcessingParameterString(self.TITLE,
                                         self.tr('Flight plan description'),
                                         'QGIS flight plan'))

        self.addParameter(
            QgsProcessingParameterFeatureSource(
                self.INPUT, self.tr('Flight waypoints layer'),
                [QgsProcessing.TypeVectorPoint]))
        self.addParameter(
            QgsProcessingParameterField(
                self.NAME_FIELD,
                self.tr('Waypoints name field'),
                parentLayerParameterName=self.INPUT,
                type=QgsProcessingParameterField.String,
                optional=True))

        elevation_param = QgsProcessingParameterField(
            self.ELEVATION_FIELD,
            self.tr('Waypoints elevation field'),
            parentLayerParameterName=self.INPUT,
            type=QgsProcessingParameterField.Numeric,
            optional=True)
        elevation_param.setFlags(
            elevation_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(elevation_param)
        orderby_param = QgsProcessingParameterExpression(
            self.ORDERBY_EXPRESSION,
            self.tr('Waypoints ordering by expression'),
            parentLayerParameterName=self.INPUT,
            optional=True)
        orderby_param.setFlags(orderby_param.flags()
                               | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(orderby_param)

        departure_airport_param = QgsProcessingParameterString(
            self.DEPARTURE_AIRPORT,
            self.tr('Custom departure airport ICAO ID'),
            '',
            optional=True)
        departure_airport_param.setFlags(
            departure_airport_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(departure_airport_param)
        destination_airport_param = QgsProcessingParameterString(
            self.DESTINATION_AIRPORT,
            self.tr('Custom destination airport ICAO ID'),
            '',
            optional=True)
        destination_airport_param.setFlags(
            destination_airport_param.flags()
            | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(destination_airport_param)

        self.addParameter(
            QgsProcessingParameterFileDestination(
                self.OUTPUT,
                self.tr('Output flight plan file (.PLN)'),
                fileFilter='Flight plan files (*.PLN *.pln)'))