ฉันกำลังพยายามตัดรูปหลายเหลี่ยมเรขาคณิตใน QGIS โดยใช้เลเยอร์เสมือน:
SELECT
sbqry.rowid AS gid,
sbqry.geom
FROM
(SELECT
ST_Intersection(land_parcels.geometry, flood_zone.geometry) AS geom
FROM land_parcels, flood_zone
WHERE ST_Intersects(land_parcels.geometry, flood_zone.geometry) AND NOT ST_Touches(land_parcels.geometry, flood_zone.geometry))
AS sbqry;
น่าเสียดายที่sbqry.rowid AS gid
คืนค่า NULL แทนค่าที่เพิ่มขึ้นอัตโนมัติ
ไม่มีใครรู้วิธีสร้างคอลัมน์ตัวระบุที่ไม่ซ้ำกันชื่อว่า 'gid' หรือไม่ เท่าที่ฉันรู้ชั้นเสมือนอยู่บนพื้นฐานของ SQLite / Spatialite
คุณใช้ชนิดข้อมูลใดสำหรับเลเยอร์เสมือน
—
DPSSpatial
เลเยอร์อินพุตเป็นไฟล์. shp ชนิดเรขาคณิตเอาท์พุทคือ 'รูปหลายเหลี่ยม'
—
eclipsed_by_the_moon
ฉันไม่รู้ว่าคุณสามารถเรียกใช้ฟังก์ชันอวกาศ (ST_ *) บนรูปร่างไฟล์ได้! เยี่ยมมาก !!!
—
DPSSpatial
คุณลองลบ sbqry จาก 'SELECT rowid as gid' ... ฉันพบโพสต์อื่นที่มีตัวอย่างเช่น
—
kttii
'rowid AS gid' ทำงานร่วมกับคำสั่ง SELECT แบบง่าย ๆ เช่นการสร้างบัฟเฟอร์ แต่ไม่ได้มีคิวรีย่อย
—
eclipsed_by_the_moon