Estou tentando realizar uma análise tipológica básica usando o PostGIS. Meu objetivo é encontrar polígonos que toquem outros polígonos. Para fazer isso, pensei ST_GetFaceEdgesque funcionaria ( referência ). Quero verificar todos os polígonos no meu banco de dados e listar todos os outros polígonos que o tocam. Na imagem abaixo, eu esperaria que o resultado dissesse que dois dos polígonos (que são edifícios) tocam em um edifício, e os resultados dos outros 4 dizem que eles tocam 0 polígonos.

No entanto, estou tendo dificuldades para entender o que fazer. Quando tentei copiar o exemplo, havia algumas partes que não entendi.
-- 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;
Não tenho certeza se topologyé o nome de uma tabela, coluna ou parte da função. Presumi que fosse a mesa, mas não tenho certeza.
-- 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;
Também não tenho certeza de qual é a função da junção interna - isso une o resultado ao objeto original?
AddTopoGeometryColumnà tabela antes de executar a consulta? Com base nos resultados dos ST_Touchesvalores que verifiquei, tudo fazia sentido, mas talvez isso fosse por acaso.
AddTopoGeometryColumn, mas seus dados precisariam ser digitalizados de uma maneira topologicamente consistente. Por exemplo, tradicionalmente, você digitaria duas casas geminadas como dois polígonos e usaria "snap ao vértice" em seu GIS para garantir que a parede compartilhada tocasse, mas ela será armazenada como duas linhas coincidentes com pontos coincidentes em cada extremidade. Mas digitalizá-las topologicamente significa que a parede compartilhada é realmente apenas uma linha e dois nós compartilhados por cada polígono. ST_Touchesapenas faz uma verificação espacial de proximidade, não topológica.

CreateTopologye assim por diante ( bit.ly/oLk8QY ) Mas a maneira como seus edifícios são digitalizados parece-me como se fossem topologicamente distintos, apesar da proximidade visual de suas bordas. Apenas algo para os futuros questionadores estarem cientes.