背景
在使用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自己創建的函數。雙擊函數
在括號裏寫入字段名字,然後可以看到預覽輸出
好了,這裏自定義函數的實戰教程就到此結束