回答:
方程式を新しい関数で記述でき、その後、関数を呼び出して計算を再適用するだけで済みます。
フィールド計算機を開き、Function Editorタブをクリックしてnew file、関数を編集します。を選択しloadます。okこの時点では利用できないことに注意してください。
Expressionタブに戻り、custom関数グループを選択して関数をダブルクリックします。更新するフィールドを選択し、を押しokます。
フィールド値と定数のみを使用する場合は、デフォルトの関数シグニチャーを編集できますvalue1。これはで始まります。私の例ではそれを削除しましたが、このフィールドを使用して新しい引数を渡すことができます。
その後、feature["fieldName"]... を使用してフィーチャフィールドの値にアクセスできます。この関数を呼び出すのは、上記のフィールドを含むレイヤーでのみに注意してください。
@qgsfunction(args='auto', group='Custom')
def funcTestCalc( feature, parent):
return feature["fieldA"]+feature["fieldB"];
新しいポイントを既存のレイヤーに追加し、そのポイントに対して他のすべてのポイントと同じ計算を実行する場合は、次の2つの便利な機能があります。
バーチャルフィールド
仮想フィールドは、すべての新しい属性の式を自動的に計算します。また、定期的に更新されます。たとえば、「緯度」と呼ばれる仮想フィールドの場合、式を使用できます$y。
仮想フィールドの長所と短所:
デフォルトのフィールド値を持つ通常のフィールド
式に基づいてデフォルト値を持つようにフィールドを設定できます。新しいポイントを作成すると、その属性はデフォルト値で自動入力されます。属性値を変更できます。自動的に更新されません。*
デフォルトのフィールド値の長所と短所:
* QGIS 3.2では、デフォルトのフィールド値を(オプションで)「更新時にデフォルト値を適用する」に設定できます。このオプションを使用すると、デフォルト値が$y現在の値であるポイントを移動すると、新しいy座標に置き換えられます。