แปลงเลขอารบิกเป็นเลขไทยใน 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 สำหรับเขียนสูตรเพิ่มเติมเข้าไปเอง
กด + เพื่อเพิ่ม 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”)
แล้วกด OK
เอวังก็มีด้วยประการฉะนี้แล สาธุชน
เพิ่มเติม: