[FOSSGIS-Talk] ST_Difference ohne Eingabegeometrien

Bernhard Ströbl bernhard.stroebl at jena.de
Mi Sep 14 07:52:00 CEST 2016


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 at 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