コード例 #1
0
    def initAlgorithm(self, config=None):
        # パラメータの定義を行う

        # QgsProcessingParameterFooBar クラスがたくさん用意されている
        # パラメータオブジェクトを self.addParameter(param) すると
        # 自動的にウィジェットが設定される

        self.addParameter(
            QgsProcessingParameterPoint(self.POINT1, self.tr('Start point')))

        self.addParameter(
            QgsProcessingParameterPoint(self.POINT2, self.tr('End point')))

        segdist_param = QgsProcessingParameterDistance(
            self.SEGMENT_DIST,
            self.tr('Segment Distance'),
            defaultValue=100,
            # パラメータ定義時の minValue は単位に関わらず適用されるため
            # 最低値のチェック及び適用はあとで行う
            # とはいえウィジットレベルで最低0以上の制約は行う
            minValue=0)
        segdist_param.setDefaultUnit(QgsUnitTypes.DistanceKilometers)
        # 高度なパラメータフラグ
        segdist_param.setFlags(QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(segdist_param)

        # 結果の出力
        self.addParameter(
            QgsProcessingParameterFeatureSink(self.OUTPUT,
                                              self.tr('Output layer')))
コード例 #2
0
    def initAlgorithm(self, config=None):
        self.addParameter(QgsProcessingParameterMapLayer(self.INPUT, self.tr('Input layer')))

        round_to_parameter = QgsProcessingParameterDistance(self.ROUND_TO,
                                                            self.tr('Round values to'),
                                                            parentParameterName=self.INPUT,
                                                            minValue=0,
                                                            defaultValue=0)
        round_to_parameter.setFlags(round_to_parameter.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(round_to_parameter)

        self.addParameter(QgsProcessingParameterFeatureSink(self.OUTPUT, self.tr('Extent'), type=QgsProcessing.TypeVectorPolygon))
コード例 #3
0
    def initAlgorithm(self, config):
        self.addParameter(
            QgsProcessingParameterFeatureSource(
                self.POINTS_INPUT, self.tr("Points Input"),
                [QgsProcessing.TypeVectorPoint]))

        # have to use QgsProcessingParameterFile to account for rasters too large to load in qgis
        self.addParameter(
            QgsProcessingParameterFile(self.RASTER_INPUT,
                                       self.tr("Raster File Input")))

        param = QgsProcessingParameterDistance(
            self.GRAB_RADIUS_INPUT,
            self.tr("Grab Radius"),
            parentParameterName=self.POINTS_INPUT,
            optional=True)
        param.setFlags(param.flags()
                       | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(param)

        param = QgsProcessingParameterNumber(
            self.GRAB_AREA_DISTANCE_WEIGHT_INPUT,
            self.tr("Grab Area Distance Weight"),
            type=QgsProcessingParameterNumber.Double,
            optional=True)
        param.setFlags(param.flags()
                       | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(param)

        param = QgsProcessingParameterFile(self.GRAB_FUNCTION_INPUT,
                                           self.tr("Grab Function"),
                                           optional=True)
        param.setFlags(param.flags()
                       | QgsProcessingParameterDefinition.FlagAdvanced)
        self.addParameter(param)

        self.addParameter(
            QgsProcessingParameterFeatureSink(
                self.POINTS_WITH_VALUES_OUTPUT,
                self.tr("Points with Grabbed Values")))