拓扑和拓扑几何管理函数

AddTopoGeometryColumn

AddTopoGeometryColumn — 将拓扑几何列添加到现有表中,将此新列注册为topology.layer 中的图层并返回新的layer_id。

语法

addtopogeometrycolumn ::=

参数

topology_name

varchar类型。拓扑名字。

schema_name

varchar类型。模式名字。

column_name

varchar类型。列名。

feature_type

varchar类型。支持输入:POINT、MULTIPOINT、LINE、MULTILINE、POLYGON、MULTIPOLYGON、COLLECTION。

child_layer

integer类型。如果您不指定 [child_layer](或将其设置为 NULL),该图层将包含基本拓扑几何(由原始拓扑元素组成)。 否则,该层将包含分层的 TopoGeometries(由 child_layer 中的 TopoGeometries 组成)。

返回值

返回值为integer类型。

示例

select topology.addtopogeometrycolumn('tt','SYSDBA','FEATURE','tg','POINT');
ADDTOPOGEOMETRYCOLUMN(int)      |
--------------------------------
1                               |
总数目:1

DropTopology

DropTopology — 谨慎使用:删除拓扑模式并从topology.topology 表中删除其引用,并从geometry_columns 表中删除对该模式中表的引用。

语法

droptopology ::=

参数

topology_schema_name

varchar类型。拓扑模式名。

返回值

返回值为TEXT类型。

示例

SELECT topology.DropTopology('tt');
DROPTOPOLOGY(text)      |
------------------------
Topology 'tt' dropped   |
总数目:1

DropTopoGeometryColumn

DropTopoGeometryColumn — 从架构 schema_name 中名为 table_name 的表中删除拓扑几何列,并从 topology.layer 表中取消注册这些列。

语法

droptopogeometrycolumn ::=

参数

schema_name

varchar类型。模式名。

table_name

varchar类型。表名。

column_name

varchar类型。列名。

返回值

返回值为TEXT类型。

示例

SELECT topology.DropTopoGeometryColumn('SYSDBA','T1F','geom_t1');
DROPTOPOGEOMETRYCOLUMN(text)      |
----------------------------------
Layer 1 (SYSDBA.T1F.geom_t1) dropp|
ed                                |
总数目:1

Populate_Topology_Layer

Populate_Topology_Layer — 通过从拓扑表读取元数据,将缺失的条目添加到topology.layer表中。

语法

populate_topology_layer ::=

返回值

返回的列是 schema_name、table_name、feature_column

示例

SELECT * FROM topology.Populate_Topology_Layer();
SCHEMA_NAME(varchar)      |TABLE_NAME(varchar)      |FEATURE_COLUMN(varchar)      |
--------------------------------------------------------------------------------
STRK                      |PARCELS                  |topo                         |
总数目:1

TopologySummary

TopologySummary — 获取拓扑名称并提供拓扑中对象类型的汇总总数。

语法

topologysummary ::=

参数

topology_schema_name

varchar类型。拓扑名。

返回值

返回的列是 schema_name、table_name、feature_column

示例

SELECT '--registered_layer--' || CHR(10) ||topology.TopologySummary('test');
?COLUMN?(text)      |
--------------------
--registered_layer--|

Topology "test" (i|
d 1, SRID 10, preci|
sion 20)
0 nodes, 0|
 edges, 0 faces, 1 |
topogeoms in 1 laye|
rs
Layer 1, type Pu|
ntal (1), 1 topogeo|
ms
 Deploy: "test".|
T.C
                |
总数目:1

ValidateTopology

ValidateTopology — 返回一组 validatetopology_returntype 对象,详细说明拓扑问题。

语法

validatetopology ::=

参数

topology_schema_name

varchar类型。拓扑名。

返回值

返回一组记录,提供有关拓扑关系表中无效性的信息。
错误 id1 id2 意义
重合节点 第一个节点的标识符 第二个节点的标识符 两个节点具有相同的几何形状
边穿过节点 边的标识符 节点的标识符 边在其内部有一个节点
无效边 边的标识符   无效边几何图形
不简单边 边的标识符 第二个节点的标识符。 边几何体具有自相交
边与边交叉 第一条边的标识符 第二条边的标识符 两条边有一个内部交叉点
边起始节点几何形状不匹配 边的标识符 指示的起始节点的标识符 指示为边的起始节点的节点的几何形状与边几何形状的第一个点不匹配
边端节点几何形状不匹配 边的标识符 指示的端节点的标识符 指示为边的结束节点的节点的几何形状与边几何形状的最后一个点不匹配
无边面 孤立面的标识符   没有边报告其两侧存在现有面(left_face、right_face)
face has no rings(面没有环) 部分定义的面的标识符   在其侧面报告面的边不形成环
face has wrong mbr(面的最小边界框错误) mbr 缓存错误的面的标识符   面的最小边界矩形与报告其侧面的面的边集合的最小边界框不匹配
hole not in advertised face(孔不在宣传的面内) 边的签名标识符,标识环   在其外部报告一个面的边缘环包含在不同的面上
非隔离节点具有 not- contains_face 不明确的节点的标识符   被报告为位于一个或多个边界上的节点表示一个包含的面
孤立节点有 contains_face 不明确的节点的标识符   一个节点如果没有被报告位于任何边界上,那就缺乏表示包含面的指示
孤立节点有错误的 contains_face 错误表述节点的标识符   一个未被报告位于任何边界上的节点指示了一个包含它的面,并且这个面不是实际包含它的面
无效的 next_right_edge 错误表示的边的标识符 边的有符号 ID,应指示为下一个右边 在沿着一条边的右侧行走时所指示的下一条边是错误的
无效的 next_left_edge 错误表示的边的标识符 边的有符号 ID,应指示为下一个左边 在沿着一条边的左侧行走时所指示的下一条边是错误的
mixed face labeling in ring(环内混合面标记) 边的签名标识符,标识环   环中的边表示了在行走的一侧存在冲突的面。这也被称为 '边界位置冲突'
非闭合环 边的签名标识符,标识环   由以下 next_left_edge/next_right_edge 属性形成的边环在不同节点上开始和结束
face has multiple shells(面有多个外壳) 有争议的面的标识符 边的签名标识符,标识环 多个环状边界表示了同一个面的内部

示例

SELECT * from topology.ValidateTopology('t');
ERROR(varchar)      |ID1(int)      |ID2(int)      |
总数目:0