Answers:
您可以在新函数中编写方程式,然后只需调用该函数即可重新应用计算。
打开字段计算器,单击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"];
如果要向现有图层添加新点,并且要对该点运行与所有其他点相同的计算,则有两个有用的功能:
虚拟领域
虚拟字段会自动为每个新属性计算一个表达式。它也会定期更新。因此,例如,对于称为“纬度”的虚拟字段,您可以使用表达式$y
。
虚拟字段的优点和缺点:
具有默认字段值的常规字段
您可以将字段设置为具有基于表达式的默认值。创建新点时,其属性将自动填充为默认值。您可以更改属性值。它不会自动更新。*
默认字段值的优缺点:
*在QGIS 3.2中,默认字段值可以(可选)设置为“更新时应用默认值”。使用此选项,如果将默认值是$y
当前值的点移动到新的y坐标上。