แปลงเลขอารบิกเป็นเลขไทยใน QGIS

เผยแพร่เมื่อ:

ปรับปรุง/แก้ไขล่าสุดเมื่อ:

แปลงเลขอารบิกเป็นเลขไทยใน QGIS อาจจะต้องเขียนโค้ดเล็กน้อย ดัดแปลงมาจากการแปลงเลขอารบิกเป็นเลขไทยใน ArcGIS แต่ว่า มีความแตกต่างด้านฟังก์ชันการใช้โค้ดพอสมควร

แปลงเลขอารบิกเป็นเลขไทยใน QGIS

เหมือนเดิม ในฟิลด์ “LAND_NO” มี data type เป็น numerics หรือตัวเลข เราต้องการสร้างฟิลด์ใหม่ เป็นฟิลด์ “LAND_TH” มีค่าเหมือนฟิลด์ “LAND_NO” แต่ว่าเป็นเลขไทย โดยฟิลด์ “LAND_TH” ตั้ง data type เป็น text

ยืนยันคำเดิมว่า ไม่เห็นด้วยกับการใช้ฟอนต์ TH Sarabun IT๙

แต่ถ้าใครจะใช้ก็คงห้ามไม่ได้เหมือนกัน

แต่ถ้าเลือกได้ก็หวังว่าจะไม่มีใครใช้ฟอนต์สิ้นคิดตัวนี้

Open Field Calculator

ใน ArcGIS Pro มีเครื่องมือสามัญประจำบ้านคือ Calculate Field สำหรับใช้คำนวณอะไรต่าง ๆ นานา ใน QGIS ก็มีเครื่องมือสามัญประจำบ้านชื่อ Field Calculator สำหรับทำงานอย่างเดียวกัน เพียงแต่เรียกต่างกันเฉย ๆ

เราจะไปที่แท็บ function editor สำหรับเขียนสูตรเพิ่มเติมเข้าไปเอง

แปลงเลขอารบิกเป็นเลขไทยใน QGIS

กด + เพื่อเพิ่ม function file หรือ project function ก็ได้ แล้วแต่ว่าจะเก็บเป็นไฟล์ไว้ใช้งานอื่นหรือเปล่า

แล้วใส่โค้ด

from qgis.core import QgsExpression, QgsExpressionContextUtils
@qgsfunction(args='auto', group='Custom')
def to_thai_numerals(value, feature, parent):
    arabic = '0123456789'
    thai = '๐๑๒๓๔๕๖๗๘๙'
    return ''.join(thai[arabic.index(c)] if c in arabic else c for c in str(value))

แล้วให้กด Save And Load

ย้อนกลับไปแท็บ Expression

เราจะโหลดฟังก์ชันที่เพิ่งทำไปเมื่อสักครู่

จะพิมพ์ชื่อ to_thai_numerals ไปเลยก็ได้ หรือกดหา จากหมวดหมู่ custom ทางหน้าต่างขวามือก็ได้

ในวงเล็ก เราจะใส่ตัวแปร “LAND_NO”

ก็จะได้เป็น

 to_thai_numerals (“LAND_NO”)
แปลงเลขอารบิกเป็นเลขไทยใน QGIS

แล้วกด OK

เอวังก็มีด้วยประการฉะนี้แล สาธุชน

เพิ่มเติม: