[FOSSGIS-Talk] Räumlicher Join von Grundstücken und Gebäuden in PostGIS
Felix Kunde
felix-kunde at gmx.de
Sa Mai 21 15:35:37 CEST 2016
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]