仮想レイヤーを使用して、QGISでポリゴンジオメトリを交差させようとしています。
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;
残念ながら、sbqry.rowid AS gid
自動インクリメント値の代わりにNULLを返します。
「gid」という名前の一意の識別子列を作成する方法を知っている人はいますか?私の知る限り、仮想レイヤーはSQLite / Spatialiteに基づいています。
仮想レイヤーにどのデータタイプを使用していますか?
—
DPSSpatial
入力レイヤーは.shpファイルで、出力ジオメトリタイプは「ポリゴン」です。
—
eclipsed_by_the_moon 2016年
シェープファイルで空間関数(ST_ *)を実行できることを知りませんでした!それは素晴らしいことです!!!
—
DPSSpatial
'select rowid as gid'からsbqryを削除してみましたか?そのような例の別の投稿を見つけました。
—
kttii
'rowid AS gid'は、バッファーの作成などの単純なSELECTステートメントでは機能しますが、サブクエリでは機能しません。
—
eclipsed_by_the_moon 2016年