Name

Topology_Load_Tiger — PostGIS 지형에 TIGER 데이터의 정의된 지역을 로드하면서 TIGER 데이터를 지형의 공간 참조 시스템으로 변환하고 지형의 정확도 허용 오차에 스냅시킵니다.

Synopsis

text Topology_Load_Tiger(varchar topo_name, varchar region_type, varchar region_id);

설명

PostGIS 지형에 TIGER 데이터의 정의된 지역을 로드합니다. 면, 노드 및 경계선을 대상 지형의 공간 참조 시스템으로 변환하고 대상 지형의 허용 오차에 포인트들을 스냅시킵니다. 이렇게 생성된 면, 노드, 경계선이 원본 TIGER 데이터의 면, 노드, 경계선과 동일한 ID를 유지하기 때문에, 이 데이터셋은 향후 TIGER 데이터와 더 쉽게 함께 쓰일 수 있습니다. 처리 과정에 대한 요약 설명문을 반환합니다.

이 함수는, 예를 들어, 도로의 중심선을 따라 새로 형성된 폴리곤이 필요한데 이 폴리곤들이 서로 중첩해서는 안 될 경우, 데이터를 제약하는 데 유용합니다.

[Note]

이 함수는 TIGER 데이터는 물론 PostGIS 지형의 설치에 의존적입니다. 더 자세한 정보를 원한다면 Chapter 8, 지형(topology)Section 2.2.3, “설정” 을 참조하십시오. 관심지역을 커버하는 데이터를 로드하지 않았을 경우, 어떤 지형 레코드도 생성하지 않을 것입니다. 또한 지형 함수를 이용해서 지형을 생성하지 않았을 경우에도 오류를 발생시킬 것입니다.

[Note]

지형 확인 오류 대부분은 변환 작업 후 경계선 및 포인트가 제대로 정렬되지 않거나 중첩되지 않는 허용 오차 문제입니다. 지형 확인 오류가 발생한 경우, 이런 상황을 해결하려면 정확도를 높이거나 낮추는 편이 좋을 수도 있습니다.

필수 인수:

  1. topo_name - 데이터를 로드할 기존 PostGIS 지형의 명칭입니다.

  2. region_type - 경계를 이루는 지역의 유형입니다. 현재 placecounty 만 지원합니다. 몇몇 유형을 더 지원할 예정입니다. 이 인수는 tiger.place, tiger.county 처럼 지역 경계를 정의하려면 살펴봐야 할 테이블입니다.

  3. region_id - TIGER가 지리 ID(geoid)라고 부르는 식별자입니다. 테이블에 있는 지역의 유일한 식별자입니다. place 의 경우 tiger.place 테이블에 있는 plcidfp 열입니다. county 의 경우 tiger.county 테이블에 있는 cntyidfp 열입니다.

2.0.0 버전부터 사용할 수 있습니다.

예시: 매사추세츠 주 보스턴 시의 지형

매사추세츠 주 피트 단위 평면(2249)에서 매사추세츠 주 보스턴 시에 대해 허용 오차 0.25 피트를 가진 지형을 생성한 다음, 보스턴 시의 TIGER 면, 경계선, 노드를 로드합니다.

SELECT topology.CreateTopology('topo_boston', 2249, 0.25);
createtopology
--------------
   15
-- 60,902 ms ~ 1 minute on windows 7 desktop running 9.1 (with 5 states tiger data loaded)
SELECT tiger.topology_load_tiger('topo_boston', 'place', '2507000');
-- topology_loader_tiger --
29722 edges holding in temporary. 11108 faces added. 1875 edges of faces added.  20576 nodes added.
19962 nodes contained in a face.  0 edge start end corrected.  31597 edges added.

-- 41 ms --
SELECT topology.TopologySummary('topo_boston');
 -- topologysummary--
Topology topo_boston (15), SRID 2249, precision 0.25
20576 nodes, 31597 edges, 11109 faces, 0 topogeoms in 0 layers

-- 28,797 ms to validate yeh returned no errors --
SELECT * FROM
    topology.ValidateTopology('topo_boston');

       error       |   id1    |    id2
-------------------+----------+-----------
      

예시: 매사추세츠 주 서퍽 군의 지형

매사추세츠 주 미터 단위 평면(26986)에서 매사추세츠 주 서퍽 군에 대해 허용 오차 0.25 미터를 가진 지형을 생성한 다음, 서퍽 군의 TIGER 면, 경계선, 노드를 로드합니다.

SELECT topology.CreateTopology('topo_suffolk', 26986, 0.25);
-- this took 56,275 ms ~ 1 minute on Windows 7 32-bit with 5 states of tiger loaded
-- must have been warmed up after loading boston
SELECT tiger.topology_load_tiger('topo_suffolk', 'county', '25025');
-- topology_loader_tiger --
 36003 edges holding in temporary. 13518 faces added. 2172 edges of faces added.
 24761 nodes added.  24075 nodes contained in a face.  0 edge start end corrected.  38175 edges added.
-- 31 ms --
SELECT topology.TopologySummary('topo_suffolk');
 -- topologysummary--
 Topology topo_suffolk (14), SRID 26986, precision 0.25
24761 nodes, 38175 edges, 13519 faces, 0 topogeoms in 0 layers

-- 33,606 ms to validate --
SELECT * FROM
    topology.ValidateTopology('topo_suffolk');

       error       |   id1    |    id2
-------------------+----------+-----------
 coincident nodes  | 81045651 |  81064553
 edge crosses node | 81045651 |  85737793
 edge crosses node | 81045651 |  85742215
 edge crosses node | 81045651 | 620628939
 edge crosses node | 81064553 |  85697815
 edge crosses node | 81064553 |  85728168
 edge crosses node | 81064553 |  85733413
      

참고

CreateTopology, CreateTopoGeom, TopologySummary, ValidateTopology