名称

Topology_Load_Tiger — 将定义区域的 Tiger 数据加载到 PostGIS Topology 中,并将 Tiger 数据转换为拓扑的空间参考,并对齐到拓扑的精度容差。

概要

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

描述

将定义区域的 Tiger 数据加载到 PostGIS Topology 中。面、节点和边被转换为目标拓扑的空间参考系统,点被对齐到目标拓扑的容差。创建的面、节点、边保持与原始 Tiger 数据面、节点、边相同的 ID,以便将来可以更轻松地将数据集与 Tiger 数据进行协调。返回有关该过程的摘要详细信息。

例如,这对于重新划分数据很有用,在重新划分数据时,您需要新形成的多边形遵循街道中心线,并且生成的多分形不重叠。

[Note]

此函数依赖于 Tiger 数据以及 PostGIS 拓扑模块的安装。有关更多信息,请参阅 第 8 章,拓扑第 2.2.3 节,“构建配置”。如果您尚未加载覆盖感兴趣区域的数据,则不会创建任何拓扑记录。如果您尚未使用拓扑函数创建拓扑,则此函数也会失败。

[Note]

大多数拓扑验证错误是由于容差问题造成的,在转换后,边的点没有完全对齐或重叠。为了解决这种情况,如果您遇到拓扑验证失败,您可能需要增加或降低精度。

必需参数

  1. topo_name 要将数据加载到的现有 PostGIS 拓扑的名称。

  2. region_type 边界区域的类型。目前仅支持 placecounty。计划将有更多。这是要查找以定义区域边界的表。例如 tiger.placetiger.county

  3. region_id 这是 TIGER 称为 geoid 的东西。它是表中区域的唯一标识符。对于 place,它是 tiger.place 中的 plcidfp 列。对于 county,它是 tiger.county 中的 cntyidfp

可用性:2.0.0

示例:马萨诸塞州波士顿拓扑

在马萨诸塞州平面英尺 (2249) 中创建波士顿,马萨诸塞州的拓扑结构,容差为 0.25 英尺,然后加载波士顿城市虎面、边和节点。

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 米,然后加载萨福克县虎面、边和节点。

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
      

另请参阅

创建拓扑结构创建拓扑几何拓扑结构摘要验证拓扑结构