Estou tentando interceptar geometrias de polígonos no QGIS usando uma camada 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;
Infelizmente, sbqry.rowid AS gid
retorna NULL em vez de valores de incremento automático.
Alguém sabe como criar uma coluna identificadora única chamada 'gid'? Tanto quanto eu sei, as camadas virtuais são baseadas em SQLite / Spatialite.
Que tipo de dados você está usando para a camada virtual?
—
DPSSpatial
As camadas de entrada são arquivos .shp, o tipo de geometria de saída é 'polígono'.
—
eclipsed_by_the_moon
Eu não sabia que você poderia executar funções espaciais (ST_ *) em shapefiles! Isso é ótimo!!!
—
DPSSpatial
você tentou remover sbqry de 'SELECT rowid as gid' ... Encontrei outro post com esse exemplo.
—
kttii
'rowid AS gid' funciona com instruções SELECT simples, como criar um buffer, mas não com uma subconsulta.
—
eclipsed_by_the_moon