Estoy tratando de intersectar geometrías de polígonos en QGIS usando una capa 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;
Desafortunadamente, sbqry.rowid AS gid
devuelve NULL en lugar de valores de incremento automático.
¿Alguien sabe cómo crear una columna de identificador único llamada 'gid'? Hasta donde yo sé, las capas virtuales se basan en SQLite / Spatialite.
¿Qué tipo de datos está utilizando para la capa virtual?
—
DPSEspacial
Las capas de entrada son archivos .shp, el tipo de geometría de salida es 'polígono'.
—
eclipsed_by_the_moon
¡No sabía que podía ejecutar funciones espaciales (ST_ *) en archivos shape! ¡¡¡Eso es genial!!!
—
DPSEspacial
¿Has intentado eliminar sbqry de 'SELECT rowid as gid'? Encontré otra publicación con ese ejemplo.
—
kttii
'rowid AS gid' funciona con instrucciones SELECT simples como crear un búfer pero no con una subconsulta.
—
eclipsed_by_the_moon