背景
在使用qgis 3.x时有时候会做一些数据处理,比如说字符的全角专半角处理,截取一些字符串等等需求,
我这里刚好有一个需要操作全角转半角的需求,qgis里又没有自带的函数,只好自定义一个函数,本篇将会以图文的形式来说一下如何从零创建一个自定义函数,并使用它。
右键打开属性表
打开字段计算器
打开函数编辑器
新加函数
函数名字起一个,我这里叫作strQ2B(字符串全角转半角的缩写)
然后把下面的文本内容复制进去
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def strQ2B(ustring, feature, parent):
"""
全角转半角
<h2>用法示例:</h2>
<ul>
<li>strQ2B("G101") -> G101</li>
</ul>
"""
ss = ""
for s in ustring:
rstring = ""
for uchar in s:
inside_code = ord(uchar)
if inside_code == 12288: # 全角空格直接转换
inside_code = 32
elif (inside_code >= 65281 and inside_code <= 65374): # 全角字符(除空格)根据关系转化
inside_code -= 65248
rstring += chr(inside_code)
ss += rstring
return ss
点击保存并载入函数
然后在表达式的标签页中可以看到custom里面有strQ2B自己创建的函数。双击函数
在括号里写入字段名字,然后可以看到预览输出
好了,这里自定义函数的实战教程就到此结束