Topology_Load_Tiger — 将定义的老虎数据区域加载到PostGIS拓扑中,并将老虎数据转换为拓扑的空间参考,并捕捉到拓扑的精度公差。
text
Topology_Load_Tiger
(
varchar
topo_name
, varchar
region_type
, varchar
region_id
)
;
将定义的Tiger数据区域加载到PostGIS拓扑中。将面、节点和边变换到目标拓扑的空间参考系,并将点捕捉到目标拓扑的公差。创建的面、节点、边保持与原始TIGER数据面、节点、边相同的ID,以便将来的数据集可以更容易地与TIGER数据进行协调。返回有关进程的摘要详细信息。
例如,这对于重新划分数据非常有用,在这些数据中,您需要新形成的多边形沿街道中心线移动,并且生成的多边形不重叠。
![]() |
|
该功能依赖于Tiger数据以及PostGIS拓扑模块的安装。有关详细信息,请参阅 Chapter 10, 拓扑学 和 Section 2.2.3, “生成配置” 。如果尚未加载覆盖感兴趣区域的数据,则不会创建任何拓扑记录。如果您尚未使用拓扑功能创建拓扑,则此功能也将失败。 |
![]() |
|
大多数拓扑验证错误都是公差问题的结果,在公差问题中,转换后的边点不完全对齐或重叠。为了解决这种情况,如果拓扑验证失败,您可能需要提高或降低精度。 |
必需的参数:
topo_name
要将数据加载到的现有PostGIS拓扑的名称。
region_type
边界区域的类型。目前仅限
place
和
county
是受支持的。计划是再增加几个。这是要查看的表,以定义区域边界。E.g
tiger.place
,
tiger.county
region_id
这就是老虎所说的大地水准面。它是表中区域的唯一标识符。对于地方来说,它是
plcidfp
中的列
tiger.place
。对于县城来说,这是
cntyidfp
中的列
tiger.county
可用性: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