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 riverlayer 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)