สร้างเครื่องมือ Action สำหรับ Select features ที่มีค่า value ในข้อมูล attributes ที่เหมือนกัน

Chingchai Hoomhong
MAPEDIA BLOG
Published in
2 min readNov 19, 2019
select features for same value

หลายๆท่านคงเคยใช้ในส่วนของการสืบค้น (Query) จากข้อมูล Attributes มากันมาบ้างแล้ว วันนี้ผมจะมาสอนวิธีการสร้างปุ่มเครื่องมือ (Action) สำหรับการเลือกข้อมูลที่มีค่า Attributes ที่เหมือนกัน โดยเวลาเราคลิกลงไปยังข้อมูลแผนที่ก็จะแสดงข้อมูลที่เราเลือกไว้ ซึ่ง Features ที่แสดงนั้นก็จะเป็นค่าข้อมูลที่เป็นค่าเดียวกันครับ ซึ่งเครื่องมือ Action นี้สามารถนำไปใช้ประโยชน์ได้หลากหลายมากๆ ยกตัวอย่างในครั้งนี้ก็คือข้อมูลตัวอย่างแปลงที่ดิน โดยผมเลือกใช้ฟิวด์ที่ชื่อว่า land_type ที่มีการเก็บค่าว่าเป็นประเภทของเอกสารสิทธิ์อะไรบ้าง เมื่อเราคลิกไปก็จะแสดงเฉพาะข้อมูลประเภทเอกสารสิทธิ์นั้นๆ โดยรูปแบบที่ใช้จะเป็นการเขียนภาษา Python สำหรับสร้าง Action มาดูขั้นตอนกันเลยครับ 😀

1.เปิดโปรแกรม QGIS และเพิ่มชั้นข้อมูล parcel เข้ามาดังภาพ

2.คลิกขวา Properties

3.ไปที่เมนู Actions จากนั้นเลือก Type แบบ Python แล้วพิมพ์โค้ดดังภาพด้านล่าง เมื่อเสร็จแล้วคลิก OK

layer = QgsProject.instance().mapLayer('[% @layer_id %]')
layer.selectByExpression('"land_type"=\'[%land_type%]\'')

4.คลิก OK

5.คลิก Active ที่ชั้นข้อมูล parcel จากนั้นคลิกปุ่ม Select same value ที่เราสร้างขึ้น

6.เลื่อนเมาส์คลิกไที่ข้อมูลแผนที่ที่ต้องการ ถ้าคลิกเลือกชั้นข้อมูลที่มีค่าเหมือนกัน การ select features ข้อมูลก็จะแสดงขึ้นมาพร้อมกันครับ

--

--