Name

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

Synopsis

setof validatetopology_returntype ValidateTopology(varchar toponame, geometry bbox);

描述

返回一组validatetopology_returntype对象,详细说明拓扑问题,可以选择将检查限制到 bbox 参数指定的区域。

下面显示了可能的错误列表、它们的含义以及返回的 id 代表的内容:

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

可用性:1.0.0

增强:2.0.0 更有效的边缘交叉检测并修复了先前版本中存在的误报。

更改:2.2.0 id1 和 id2 的值被交换为“边缘交叉节点”,以与错误描述一致。

更改:3.2.0 添加了可选的 bbox 参数,执行面标记和边链接检查。

示例

SELECT * FROM  topology.ValidateTopology('ma_topo');
      error        | id1 | id2
-------------------+-----+-----
face without edges |   1 |