Hallo Reinhard,
ich bin jetzt nicht sicher aber ich vermute, dass COALESCE da nicht
richtig ist. Hast Du es schon mal mit ST_IsEmpty() probiert
Ich würde mich der Sache folgendermassen annähren:
Erst mal sehen (ich mache das immer mit ST_AsText()), was ST_Difference
in den Fällen, in denen gewaesser.geom keine Geometrie hat, zurück gibt.
Ist der Rückgabewert wirklich NULL oder eine leere Geometrie?
Nochwas: ST_Dump habe ich noch nie benutzt aber die Dokumentation sagt
"ST_Dump is useful for expanding geometries. It is the reverse of a
GROUP BY in that it creates new rows." Deshalb wundere ich mich, dass
Deine GROUP BY-Klausel hinter der Klammer steht, in der ST_Dump steht.
Ich würde es auf der selben Klammerebene erwarten wie das ST_Union, also
eher sowas:
ST_Dump(
COALESCE(
ST_Difference(gruenland.geom, ST_Union(gewaesser.geom)
),
gruenland.geom
)
FROM public.gruenland, public.gewaesser
GROUP BY gruenland.gid
).geom::geometry(Polygon, 31256) AS geom
viel Erfolg
Bernhard
Am 13.09.2016 um 20:10 schrieb R. Reiterer:
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
--
....................................................................
FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
http://www.fossgis.de/ https://twitter.com/fossgis_eV
____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
__________ Information from ESET Mail Security, version of virus
signature database 14115 (20160913) __________
The message was checked by ESET Mail Security.
http://www.eset.com
__________ Information from ESET Mail Security, version of virus signature
database 14118 (20160914) __________
The message was checked by ESET Mail Security.
http://www.eset.com
--
....................................................................
FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
http://www.fossgis.de/ https://twitter.com/fossgis_eV
____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste