1行の周りに100mのバッファを作成したいと思います。しかし、私は最初の20mバッファを選択したくありません。私はこのようなものを試した:2つのバッファの相違
SELECT st_buffer(l.geom, 100) FROM line l
EXCEPT
SELECT st_buffer(l.geom, 20) FROM line l
しかし、QGISでそれを確認した後、それは働いていない。これをどうすれば解決できますか?
1行の周りに100mのバッファを作成したいと思います。しかし、私は最初の20mバッファを選択したくありません。私はこのようなものを試した:2つのバッファの相違
SELECT st_buffer(l.geom, 100) FROM line l
EXCEPT
SELECT st_buffer(l.geom, 20) FROM line l
しかし、QGISでそれを確認した後、それは働いていない。これをどうすれば解決できますか?
EXCEPT
はここでは実行しません。これは、最初のクエリで2番目にない行を返します。これらの行の列は変更されません。 st_buffer
の結果は、単一の行である単一のgeometryです。
代わりに、トーラス、ドーナツを作成します。より大きな円から小さな円を彫ってください。私は(私はPostGISを持っていないと思いますが)あなたは2つのバッファを作って、次に大きいものから小さい方を引きます(st_difference
)。
select
st_difference(
st_buffer(l.geom, 100),
st_buffer(l.geom, 20)
) as torus
from line l
ありがとう、これは仕事をした。 – TD1995
「EXCEPT」はここでは行いません。これは、最初のクエリで***の行***を返すことになります。これらの行の列は変更されません。私はあなたが望むと思うものはトーラスですか? – Schwern
@Schwern、そうです。しかし、私はそれをどうやって得るのですか? – TD1995