QGIS實戰系列之自定義操作函數全角字符轉半角字符

背景

在使用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自己創建的函數。雙擊函數
在這裏插入圖片描述

在括號裏寫入字段名字,然後可以看到預覽輸出

在這裏插入圖片描述

好了,這裏自定義函數的實戰教程就到此結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章