Was ist der richtige Weg, um die Differenz zwischen zwei Schichten zu berechnen? Ich habe versucht, den folgenden Ansatz zu verwenden:
SELECT ST_Difference(river.geom, lakes.geom)
FROM river LEFT JOIN lakes ON ST_Intersects(river.geom, lakes.geom)
Aber in der Ausgabe verliere ich die Geometrien der riverEbene, die keine Geometrien in schneiden lakes. Es sieht so aus, als ob Left Join nicht wie erwartet funktioniert.
Derzeit verwende ich einen anderen Ansatz, bin mir jedoch nicht sicher, ob dies korrekt ist:
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)