Tôi đang cố gắng giao cắt các hình học đa giác trong QGIS bằng cách sử dụng một lớp ảo:
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;
Thật không may, sbqry.rowid AS gid
trả về NULL thay vì giá trị tăng tự động.
Có ai biết cách tạo một cột định danh duy nhất có tên là 'gid' không? Theo tôi biết các lớp ảo dựa trên SQLite / Spatialite.
Loại dữ liệu nào bạn đang sử dụng cho lớp ảo?
—
DPSSpatial
Các lớp đầu vào là các tệp .shp, loại hình học đầu ra là 'đa giác'.
—
lu
Tôi không biết bạn có thể chạy các chức năng không gian (ST_ *) trên shapefiles! Thật tuyệt!!!
—
DPSSpatial
bạn đã thử xóa sbqry khỏi 'SELECT rowid as gid' ... Tôi tìm thấy một bài đăng khác với ví dụ như vậy.
—
kttii
'Rowid AS gid' hoạt động với các câu lệnh CHỌN đơn giản như tạo bộ đệm nhưng không phải với truy vấn con.
—
lu