Sanal bir katman kullanarak QGIS çokgen geometrileri kesişmeye çalışıyorum:
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;
Maalesef, sbqry.rowid AS gid
değerleri otomatik olarak artırmak yerine NULL döndürür.
'Gid' adında benzersiz bir tanımlayıcı sütunun nasıl oluşturulacağını bilen var mı? Bildiğim kadarıyla sanal katmanlar SQLite / Spatialite dayanmaktadır.
Sanal katman için hangi veri türünü kullanıyorsunuz?
—
DPSSpatial
Giriş katmanları .shp dosyalarıdır, çıkış geometrisi türü 'çokgen'dir.
—
eclipsed_by_the_moon
Şekil dosyalarında uzamsal işlevler (ST_ *) çalıştırabileceğinizi bilmiyordum! Bu harika!!!
—
DPSSpatial
sbqry 'SELECT rowid gid' den kaldırmayı denediniz mi ... Böyle bir örnekle başka bir yazı buldum.
—
kttii
'rowid AS gid', arabellek oluşturma gibi basit SELECT deyimleriyle çalışır, ancak alt sorgu ile çalışmaz.
—
eclipsed_by_the_moon