aspmysql做网站,国外工装设计网站大全,wordpress会员主页,南昌商城网站建设公司编程语言中的函数#xff0c;与数学函数的定义大不相同。在计算机领域#xff0c;函数是指一段可以直接被另一段程序或代码引用的程序或代码#xff0c;也叫做子程序(subroutine)、过程(procedure)、方法(method)。函数在QGIS表达式构建过程中起到重要作用#xff0c;表达式… 编程语言中的函数与数学函数的定义大不相同。在计算机领域函数是指一段可以直接被另一段程序或代码引用的程序或代码也叫做子程序(subroutine)、过程(procedure)、方法(method)。函数在QGIS表达式构建过程中起到重要作用表达式实际上是函数作用于常量与变量后得到的结果可以说函数是表达式的灵魂。 01 内置函数与自定义函数QGIS表达式中的函数分为内置函数和自定义函数两大类。内置函数是QGIS系统自带的函数用户可以在表达式构建过程中调用内置函数但是不能修改其中的代码。自定义函数是由用户通过Python语言编写的代码片段可以根据个性化需求对函数功能进行设计与修改为用户提供更强大而灵活的定制能力。系统内置函数QGIS内置函数分成约20个分组包括地图、地图图层、记录和属性、时间和日期、数学、数组、条件等。每个分组下所包含的函数数量如下 自定义函数在表达式构造器中切换到【函数编辑器】标签可以看到自定义函数编辑区由左边的函数列表、右上的函数代码编辑器和右下的帮助区域组成。默认情况下函数列表只有一个default函数是系统提供的自定义函数模版。右侧函数代码编辑器给出了样例代码提供了导入QGIS模块、自定义函数存储的分组以及函数体代码的参考。点击左下角的【】按钮在弹出的对话框输入存储的文件名即可新增自定义函数。通常情况下自定义函数首先需要使用import语句导入引用的Python库然后设计和编写函数实现代码例如在函数代码编辑器输入下面的代码import mathfrom qgis.core import *from qgis.gui import *qgsfunction(args0, groupCustom, usesgeometryTrue)def GetUtmZone(value1, feature, parent): 以字符串形式返回几何图形所属的UTM区 centroid feature.geometry() longitude centroid.asPoint().x() latitude centroid.asPoint().y() zone_number math.floor(((longitude 180) / 6) % 60) 1 if latitude 0: zone_letter N else: zone_letter S return %d%s % (int(zone_number), zone_letter)该函数的主要功能是计算要素所处的UTM投影分度带返回以‘N’或者‘S’结尾的投影分度带字符串。点击右下角的【保存并载入函数】按钮将该函数保存并载入到表达式构造器对应的分组中。此时调出表达式构造器对话框可看到上述自定义函数出现在custom分组中双击该函数即可完成函数调用。自定义函数能根据需求进行设计和代码编写为函数的使用提供了更多的可能性由于涉及到Python编程语言其使用方式也更加复杂QGIS官方文档有大量篇幅对这方面进行了详细介绍感兴趣的朋友可以到QGIS官网查阅相关文档。 02 查找函数在表达式构造器中函数以分组方式在树形结构中列出。如果对函数的分组比较熟悉大致了解自己所需要的函数属于哪个分组可以直接展开分组找到该函数。如果知道函数的名字可以在选择区上方搜索框中输入函数的名字进行快速查找。 03 使用函数双击函数即可将其添加到代码输入区中。表达式代码编辑器支持参数提示和自动补全功能输入函数的前几个字母编辑器将会提示与其匹配的函数名使用tab按键将实现自动补全。QGIS中的函数支持命名参数即在使用函数时参数的传入可以用命名参数。命名参数可以忽略参数的顺序方便函数的使用尤其是参数比较多的情况时用参数名称和参数值同时出现的方法可以提高代码的可读性。例如clamp函数可以实现将输入值限定在指定的范围内需要三个参数min范围最小值max范围最大值value输入值。默认情况下clamp函数的参数调用顺序为clamp(min,value,max)例如在表达式编辑区写入代码clamp(1,5,10)可以实现将输入值限定在[1,10]范围当前输入值为5因为在[1,10]范围内函数返回输入值本身即5。用命名参数调用的方式为clamp(min:1,max:10,value:5)注意到参数的顺序并未按照默认顺序给出而表达式引擎也正确地返回计算结果。 04 常用函数QGIS表达式中的函数将近300个在表达式构建中正确地使用函数可达到事半功倍的效果。由于篇幅所限本文不能将函数一一详解根据函数的常用程度选择约30个函数并对其进行详细说明。其他函数的用法可以在表达式构造器的帮助文档中获取。 05 函数典型应用1.darker(symbol_color,130)该函数来自《QGIS 3.10矢量样式设置》用于设置发电厂点要素的描边颜色。darker是颜色函数返回更暗的颜色字符串。symbol_color是当前几何图形的渲染颜色130是暗化因子相对应的整数。该函数实现如下功能返回比symbol_color暗30%的颜色值。2.maximum(passengers, group_by:station_class)maximum是聚合函数返回字段或者表达式的最大值。passengers是属性表中的旅客数量字段station_class是站点类型字段。该函数实现如下功能按照站点类型分组返回最大旅客数量。3.buffer( $geometry, 10 )buffer为几何图形函数实现按照给定半径返回几何图形的缓冲区$geometry表示当前选中的几何图形10为缓冲半径其单位与地图单位相同。4.to_date(2020-07-29)to_date是日期函数实现将一个字符串转换成日期对象。传入参数代表不同日期形式的字符串其支持的格式可参考QGIS的相关文档默认情况下日期字符串为短横线连接年份由4位数字表示月份由2位数字表示日期用2位数字表示形如2020-07-29。5.format_date(now(),yyyy-MM-dd)format_date是字符串函数实现格式化日期字段返回一个自定义的字符串格式。now()是日期函数返回当前日期和时间。该表达式的输出结果是短横线连接的当前日期字符串如‘2020-07-29’。 06 小结本文试图从系统内置函数、自定义函数、函数的使用和查找、常用函数说明和函数典型应用等方面探讨对QGIS表达式中的函数理解。QGIS表达式中的函数种类繁多使用方法灵活多变本文仅为抛砖引玉之作如果有理解偏差欢迎指正。吴建玲2020年7月30日版权声明本文欢迎转载转载时请注明出处。