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 river
Ebene, 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)