I'm trying to perform a basic typology analysis using PostGIS. My objective is to find any polygons that touch other polygons. To do this, I thought the
ST_GetFaceEdges would work
(reference). I want to check every polygon in my database and list all the other polygons that touch it. In the image below I would expect the result to say that two of the polygons (which are buildings) touch one building, and the results of the other 4 to say that they touch 0 polygons.
However, I'm having some difficulty understanding what to do. When I tried to copy the example there were a few parts of it that I did not understand.
-- Returns the sequence, edge id -- , and geometry of the edges that bound face 1 -- If you just need geom and seq, can use ST_GetFaceGeometry SELECT t.seq, t.edge, geom FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge) INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;
I'm not sure whether
topology is the name of a table, column or a part of the function. I assumed that it was the table, but I'm not sure.
-- try out on sample of data -- Table is called 'TestArea', column used is 'fid_1' SELECT t.seq, t.edge, geom FROM TestArea.ST_GetFaceEdges('fid_1', 1) As t(seq,edge) INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;
I'm also not sure what the function of the inner join is - does this join the result to the original object?