编程语言中的函数,与数学函数的定义大不相同。在计算机领域,函数是指一段可以直接被另一段程序或代码引用的程序或代码,也叫做子程序(subroutine)、过程(procedure)、方法(method)。
函数在QGIS表达式构建过程中起到重要作用,表达式实际上是函数作用于常量与变量后得到的结果,可以说,函数是表达式的灵魂。
内置函数与自定义函数
QGIS表达式中的函数分为内置函数和自定义函数两大类。
内置函数是QGIS系统自带的函数,用户可以在表达式构建过程中调用内置函数,但是不能修改其中的代码。
自定义函数是由用户通过Python语言编写的代码片段,可以根据个性化需求对函数功能进行设计与修改,为用户提供更强大而灵活的定制能力。
QGIS内置函数分成约20个分组,包括地图、地图图层、记录和属性、时间和日期、数学、数组、条件等。每个分组下所包含的函数数量如下:
在表达式构造器中切换到【函数编辑器】标签,可以看到自定义函数编辑区由左边的函数列表、右上的函数代码编辑器和右下的帮助区域组成。
默认情况下,函数列表只有一个default函数,是系统提供的自定义函数模版。右侧函数代码编辑器给出了样例代码,提供了导入QGIS模块、自定义函数存储的分组以及函数体代码的参考。
点击左下角的【+】按钮,在弹出的对话框输入存储的文件名,即可新增自定义函数。
通常情况下,自定义函数首先需要使用import语句导入引用的Python库,然后设计和编写函数实现代码,例如在函数代码编辑器输入下面的代码:
import math
from qgis.core import *
from qgis.gui import *
@qgsfunction(args=0, group='Custom'