2つのレイヤーの違いを計算する正しい方法は何ですか?私は次のアプローチを使用しようとしました:
SELECT ST_Difference(river.geom, lakes.geom)
FROM river LEFT JOIN lakes ON ST_Intersects(river.geom, lakes.geom)
しかし、出力では、river
のどのジオメトリとも交差しないレイヤーのジオメトリが失われlakes
ます。左結合が期待どおりに機能しないようです。
現在、私は別のアプローチを使用していますが、これが正しいかどうかはわかりません:
SELECT ST_Difference(river.geom, lakes.geom)
FROM river JOIN lakes ON ST_Intersects(river.geom, lakes.geom)
UNION
SELECT river.geom
FROM river JOIN lakes ON NOT ST_Intersects(river.geom, lakes.geom)