[FOSSGIS-Talk] Räumlicher Join von Grundstücken und Gebäuden in PostGIS
R. Reiterer
r.reiterer at posteo.at
Sa Mai 21 19:22:18 CEST 2016
Ahoi Felix und danke für deine Mail. Sowohl ST_Contains und ST_Covers
funktionieren leider nur, wenn die Knotenstruktur der Polygone
(Grundstücke/Gebäude) an den Kanten übereinstimmt. Viele Gebäude wurden
jedoch händisch über das Orthofoto ergänzt. Die Knoten liegen also meist
irgendwo an der Grundstücksgrenze.
Schöne Grüße,
Reinhard
Am 21.05.2016 15:35 schrieb Felix Kunde:
> Ahoi Reinhard,
>
> Müsste es nicht gut mit ST_Contains(grundstuecke.geom, gebaeude.geom)
> funktionieren? Contains erlaubt auch Randbeührungen. Sollten evtl. mal
> alle Gebäudepunkte auf der Grundstückskante liegen wäre ST_Covers zu
> wählen. Wenn keine Randberührungen erlaubt sind nehme
> ST_ContainsProperly.
>
> ST_DWithin ist eher für Umkreissuchen. Sobald eine Geometrie den
> Suchradius berührt, wird sie von ST_DWithin erfasst. Soll das erst
> geschehen, wenn die Geometrie vollständig im Suchradius liegt, nimmt
> man ST_DFullyWithin.
>
> Viele Grüße
> Felix
>
>
> Gesendet: Samstag, 21. Mai 2016 um 12:08 Uhr
> Von: "R. Reiterer" <r.reiterer at posteo.at>
> An: "Fossgis talk liste" <fossgis-talk-liste at fossgis.de>
> Betreff: [FOSSGIS-Talk] Räumlicher Join von Grundstücken und Gebäuden
> in PostGIS
> Hallo an alle,
>
> ich habe ein vermutlich einfaches Problem, leider klappt es aber nicht
> so recht mit der Lösung :/ Konkret benötige ich einen räumlichen Join
> von Grundstücken und den darauf befindlichen Gebäuden. Bei den
> Geometrien handelt es sich jeweils um Polygone (MGI / Austria GK East).
> „WHERE ST_Intersects(gebaeude.geom, grundstuecke.geom) AND NOT
> ST_Touches(gebaeude.geom, grundstuecke.geom)“ funktioniert allerdings
> nicht.
>
> Das Problem liegt wohl an der möglichen Knotenstruktur von Gebäuden an
> Grundstücksgrenzen. Die Abfrage liefert falsche Ergebnisse, sobald sich
> ein Gebäudeknoten an einer Grundstückskante anstelle eines
> Grundstücksknoten befindet.
>
> Ich habe auch ST_DWithin(gebaeude.geom, grundstuecke.geom, 1) und
> ST_DFullyWithin(gebaeude.geom, grundstuecke.geom, 1) getestet, erhalte
> aber in beiden Fällen fehlerhafte Ergebnisse. Auch ist mir der
> Unterschied zwischen ST_DWihtin und ST_DFullyWithin nicht bewusst,
> „Within“ steht m.W. ohnehin für vollständig enthalten.
>
> Richtig gefährlich wird übrigens „WHERE
> ST_Within(ST_PointOnSurface(gebaeude.geom), grundstuecke.geom)“, sowohl
> QGIS (DB-Verwaltung) als auch pgAdmin gehen dabei in die Knie und
> stürzen ab.
>
> Weiß jemand guten Rat?
>
> Vielen Dank, Reinhard
> --
> ....................................................................
> FOSSGIS 2016, Die Konferenz für Open Source GIS mit OpenData und
> OpenStreetMap in Zusammenarbeit mit der AGIT 2016!
> 4.-6. Juli 2016 in Salzburg (3. Juli OpenStreetMap Workshoptag)
> http://www.fossgis.de/konferenz/2016/
>
> AGIT 2016 vom 6.-8. Juli 2016
> http://agit.at/[http://agit.at/]
>
> FOSS4G 2016 Bonn - annual global event of the Open Source Geospatial
> Foundation (OSGeo) - 24.-26. August 2016 in Bonn (zusätzlich noch
> FOSS4G Hacking Event und Workshops)
> http://2016.foss4g.org[http://2016.foss4g.org]
>
>
> FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
> GIS-Bereich und Freier Geodaten!
> http://www.fossgis.de/[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[https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste]