PostGIS를 사용하여 기본 유형학 분석을 수행하려고합니다. 내 목표는 다른 다각형에 닿는 다각형을 찾는 것입니다. 이렇게하기 위해 나는 효과가 있다고 생각했습니다 ST_GetFaceEdges
( reference ). 데이터베이스의 모든 다각형을 확인하고 해당 다각형에 닿는 다른 다각형을 모두 나열하고 싶습니다. 아래 이미지에서 두 개의 다각형 (건물)이 한 건물에 닿고 다른 4 개의 결과가 0 다각형에 닿았다고 말할 수 있습니다.
그러나 어떻게해야하는지 이해하는 데 어려움이 있습니다. 예제를 복사하려고 할 때 이해하지 못하는 부분이 몇 가지있었습니다.
-- 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;
topology
테이블 이름, 열 또는 함수의 일부 인지 확실하지 않습니다 . 나는 그것이 테이블이라고 가정했지만 확실하지 않습니다.
-- 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;
또한 내부 조인의 기능이 무엇인지 확실하지 않습니다. 결과가 원래 개체에 결합됩니까?
이것은
—
djq
AddTopoGeometryColumn
쿼리를 실행하기 전에 테이블 에 a 를 추가해야한다는 것을 의미 합니까? ST_Touches
내가 확인한 값 의 결과를 바탕으로 모든 것이 의미가 있었지만 우연히 그럴 수도 있습니다.
에 전화해야 할
—
MerseyViking
AddTopoGeometryColumn
뿐만 아니라 데이터는 위상 적으로 일관된 방식으로 디지털화해야합니다. 예를 들어, 전통적으로 두 개의 분리 된 주택을 두 개의 다각형으로 디지털화하고 GIS에서 "정점에 스냅"을 사용하여 공유 벽면 접촉을 보장하지만 각 끝에 일치점이있는 두 개의 일치 선으로 저장됩니다. 그러나 그것들을 위상 적으로 디지털화한다는 것은 공유 벽이 실제로 하나의 선과 각 다각형이 공유하는 두 개의 노드라는 것을 의미합니다. ST_Touches
위상 적 측면이 아니라 근접성에 대한 공간적 점검 만 수행합니다.
CreateTopology
( bit.ly/oLk8QY )하지만 건물이 디지털화되는 방식은 나에게 보입니다. 가장자리의 시각적 근접성에도 불구하고 위상 적으로 구별되는 것처럼. 미래의 질문자들이 알아야 할 내용입니다.