ตัวเลือกในการลบฟิลด์ในตารางแอตทริบิวต์เปิดใช้งานใน QGIS เมื่อใด ฉันอยู่ในโหมดแก้ไขและยังไม่สามารถลบฟิลด์ ...
ตัวเลือกในการลบฟิลด์ในตารางแอตทริบิวต์เปิดใช้งานใน QGIS เมื่อใด ฉันอยู่ในโหมดแก้ไขและยังไม่สามารถลบฟิลด์ ...
คำตอบ:
ปุ่มนั้นใช้ได้สำหรับเลเยอร์ PostGIS เท่านั้น คุณสามารถลบคอลัมน์ตารางผ่านทางปลั๊กอิน "ตัวจัดการตาราง"
เวอร์ชันล่าสุดของ QGIS สนับสนุนการลบฟิลด์ Shapefile จากตารางแอตทริบิวต์
เปิดใช้งานการแก้ไขจากนั้นคุณสามารถแก้ไขตารางแอตทริบิวต์ shapefile และลบคอลัมน์ที่คุณไม่ต้องการได้
ปลั๊กอิน "ตัวจัดการตาราง" ล้าสมัยแล้ว มันมาพร้อมกับคำเตือนว่าจะถูกยกเลิกและแนะนำให้คุณใช้อัลกอริทึมการประมวลผลRefactor Fieldsแทน สิ่งนี้สามารถทำงานได้ อย่างไรก็ตามวิธีอื่นคือการบันทึกเลเยอร์ด้วยชื่อใหม่ยกเลิกการเลือกฟิลด์ที่คุณต้องการส่งออกแล้วลบเวอร์ชันก่อนหน้าซึ่งมีฟิลด์ที่คุณต้องการลบออกหลังจากสร้างเลเยอร์ใหม่
หลังจากดูไฟล์หลายไฟล์ฉันพบว่าคำจำกัดความบางฟิลด์ - โดยเฉพาะฟิลด์ที่กำหนดผ่านนิพจน์เช่น "$ length" - ดูเหมือนจะเก็บไว้ในไฟล์ * .qgs เท่านั้นซึ่ง (อย่างน้อยสำหรับ QGIS 2.18.13) คือ ไฟล์ XML ซึ่งหมายความว่าเป็นไฟล์ข้อความที่สามารถแก้ไขได้โดยใช้เครื่องมือแก้ไขข้อความอย่างง่าย ชื่อของเลเยอร์ QGIS ถูกเก็บไว้ในองค์ประกอบ <layername> ... </layername> มองหาเลเยอร์ที่น่าสนใจ ฟิลด์นิพจน์แสดงอยู่ในองค์ประกอบ <expressionfields> ... </expressionfields> ตัวอย่างเช่น
<expressionfields>
<field typeName="FLOAT" precision="0" expression="$length/1000" length="0" type="6" comment="" name="km"/>
</expressionfields>
สำหรับเขตข้อมูลชื่อ "km" ซึ่งค่าจะคำนวณเป็น $ length / 1000 ลบองค์ประกอบ <field> ... </field> ที่คุณไม่ต้องการอีกต่อไป (เมื่อไฟล์ * .qgs ไม่ได้ใช้งาน) อย่าลืมทำสำเนาไฟล์ * .qgs ก่อนในกรณีที่สิ่งผิดปกติ
คุณควรดูที่ปลั๊กอิน RT SQL Layer หรือปลั๊กอิน SQL ด่วนสำหรับ QGIS