pyqgisにカスタムqgsfunctionを登録する
スタンドアロンアプリケーション内でpyqgisを使用しています。次に、のルールでfilterExpressionとして使用するカスタム式を作成したいと思いましたruleBasedRendererV2。(以前に既存の関数でレンダラーを試しましたが、すべてうまくいきました!) カスタムqgisfunction(ビットごとのAND関数-そのような関数はまだないため)は次のようになります。 from qgis.utils import qgsfunction @qgsfunction(args="auto", group='Python') def bitwise_and(value1, value2, feature, parent): return value1 & value2 私もそれを登録しようとしました: from qgis.core import QgsExpression QgsExpression.registerFunction(bitwise_and) 式をテストする: expressionString = 'bitwise_and(2, 2) = 2' exp = QgsExpression(expressionString) if exp.hasParserError(): print(exp.parserErrorString()) (与える2=2ので、いつもはTrue)関数を登録した後動作し、ない場合は失敗します。それでも、ルール内で式を使用することはできません... 現時点では、関数を含むファイルは、自動的にPATHに含まれているプロジェクトフォルダーの一番上にありますね。(Nathan Woodrowによると、ファイルはPATHのどこにでも配置できます-https : //nathanw.net/2012/11/10/user-defined-expression-functions-for-qgis/を参照してください)。 UPDATE:上記のコードで、これまでの作品の関数の登録-機能自体に今問題の嘘... アップデート#2: 非常に奇妙な!do_nothing2つの引数を取得する単純な関数は、私のコードでは正常に機能します。 @qgsfunction(args="auto", group='Python') def do_nothing(value1, value2, feature, …