[FOSSGIS-Talk] ST_Difference ohne Eingabegeometrien

R. Reiterer r.reiterer at posteo.at
Di Sep 13 20:10:52 CEST 2016


Geehrte PostGIS Enthusiasten,

ich nutze in QGIS nachfolgende SQL Abfrage um aus dem Layer "gruenland" 
(Polygone) den Layer 'gewaesser' (ebenfalls Polygone) gewissermaßen 
auszustechen.

CREATE VIEW public.gruenland_differenz AS
SELECT
   row_number() over() AS gid,
   unterabfrage.geom
FROM
(SELECT
   (ST_Dump(COALESCE(ST_Difference(gruenland.geom, 
ST_Union(gewaesser.geom)), gruenland.geom))).geom::geometry(Polygon, 
31256) AS geom
   FROM public.gruenland, public.gewaesser
   GROUP BY gruenland.gid
) AS unterabfrage;

Einige Datensätze beinhalten für den Layer 'gewaesser' jedoch keine 
Geometrien. Die Abfrage gibt in solchen Fällen kein Ergebnis zurück, 
gewünscht sind jedoch die unbearbeiteten 'gruenland' Polygone. Kann mir 
diesbezüglich jemand bei der Adaptierung der Abfrage helfen?

Vielen Dank und schöne Grüße,

Reinhard