[FOSSGIS-Talk] Räumlicher Join von Grundstücken und Gebäuden in PostGIS
R. Reiterer
r.reiterer at posteo.at
Sa Mai 21 12:08:52 CEST 2016
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