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