Apa cara yang tepat untuk menghitung perbedaan antara dua lapisan? Saya mencoba menggunakan pendekatan berikut:
SELECT ST_Difference(river.geom, lakes.geom)
FROM river LEFT JOIN lakes ON ST_Intersects(river.geom, lakes.geom)
Tetapi dalam output, saya kehilangan geometri dari river
layer yang tidak memotong geometri lakes
. Sepertinya gabung kiri tidak berfungsi seperti yang diharapkan.
Saat ini, saya menggunakan pendekatan lain, tetapi saya tidak yakin ini benar:
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)