[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