Abfrage mit DWithin

Hi, ich bin relativ neu bei PostGIS in meiner Tabelle stehen Polygone drin die verschiedenen Klassen angehöhren. Nun wollte ich eine Abfrage machen mit der ich alle Polygone einer Bestimmten Klasse zb building zurückbekomme die in einem bestimmten abstand, 500 Meter als Beispiel, von einem Explizieten Polygon stehen. Als funktion für den Abstand habe ich DWithin ausgewählt. Meine Abfrage sieht wie Folgt aus.

SELECT * From classification Where classification_fk = 4 AND ST_Dwithin((SELECT the_geom From classification where gid = 466), (SELECT the_geom From classification where classification_fk = 4 AND class = 'buildings'), 500);

allerding bekomme ich die Fehlermeldung das die Unterabfrage mehrere als eine Zeile ergab was ja bei der Select anweisung die ich verwende logisch ist nun ist die Frage wie kann ich mein Problem lösen um die gewünschte ausgabe zu erhalten. Grüße Alex

Dein Subselect liefert wie die Fehlermeldung ja sagt, mehre ‘Zeilen’ mit Geometrien. Damit kann ST_DWITHIN allerdings nichts anfangen. Du kannst sie aber mit COLLECT oder Multi zu einer Collection oder einer Multigeometrie zusammenfügen, so das nur eine Geometrie zurückgegeben wird.

Gruß UWe

Hi erstmal danke für deine Antwort. Ich habe wie du sagtest jetzt eine Collection gemacht und ich bekomme keine fehler mehr allerding werde einfach alle Geometrien ausgegeben, die einschränkung DWithin wird nicht beachtet. Meine Abfrage schaut wie folg aus.

SELECT * From classification Where classification_fk = 4 AND class = 'buildings' AND ST_Dwithin((SELECT the_geom From classification where gid = 466), (SELECT Collect(the_geom) From classification where classification_fk = 1 AND class = 'buildings'), 500);

Bitte um Hilfe Grüße Alex