Saya mencoba memotong geometri poligon di QGIS dengan menggunakan lapisan virtual:
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;
Sayangnya, sbqry.rowid AS gid
mengembalikan NULL alih-alih nilai tambah otomatis.
Adakah yang tahu cara membuat kolom pengenal unik bernama 'gid'? Sejauh yang saya tahu lapisan virtual didasarkan pada SQLite / Spatialite.
Jenis data apa yang Anda gunakan untuk lapisan virtual?
—
DPSSpatial
Lapisan input adalah file .shp, tipe geometri keluaran adalah 'poligon'.
—
eclipsed_by_the_moon
Saya tidak tahu Anda bisa menjalankan fungsi spasial (ST_ *) pada shapefile! Itu hebat!!!
—
DPSSpatial
Anda sudah mencoba menghapus sbqry dari 'SELECT rowid as gid' ... Saya menemukan posting lain dengan contoh seperti itu.
—
kttii
'rowid AS gid' bekerja dengan pernyataan SELECT sederhana seperti membuat buffer tetapi tidak dengan subquery.
—
eclipsed_by_the_moon