名称

ValidateTopology — 返回一个 validatetopology_returntype 对象集合,详细说明拓扑结构的问题。

概要

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
面没有边 孤立面的标识符。   没有边报告其任意一侧(左侧面,右侧面)上存在面。
面没有环 部分定义面的标识符。   在其侧面上报告面的边不形成环。
面具有错误的mbr 具有错误mbr缓存的面的标识符。   面的最小边界矩形与在其侧面上报告该面的边集合的最小边界框不匹配。
孔不在声明的面内 边的带符号标识符,用于标识环。请参阅 GetRingEdges   在其外部报告一个面的边环包含在不同的面中。
非孤立节点没有包含面 定义不明确的节点的标识符。   报告为在一个或多个边的边界上的节点指示一个包含面。
孤立节点具有包含面 定义不明确的节点的标识符。   未报告为在任何边的边界上的节点缺少包含面的指示。
孤立节点具有错误的包含面 被错误表示的节点的标识符。   未报告为在任何边的边界上的节点指示一个包含面,该包含面不是包含它的实际面。请参阅 GetFaceContainingPoint
无效的next_right_edge 错误表示的边的标识符。 应该指示为下一右侧边的边的带符号id。 指示为在边的右侧行走时遇到的下一条边的边是错误的。
无效的next_left_edge 错误表示的边的标识符。 应该指示为下一左侧边的边的带符号id。 指示为在边的左侧行走时遇到的下一条边的边是错误的。
环中混合的面标记 边的带符号标识符,用于标识环。请参阅 GetRingEdges   环中的边在行走侧指示冲突的面。这也称为“侧面位置冲突”。
非封闭环 边的带符号标识符,用于标识环。请参阅 GetRingEdges   通过跟踪 next_left_edge/next_right_edge 属性形成的边环在不同的节点上开始和结束。
面具有多个外壳 有争议的面的标识符。 边的带符号标识符,用于标识环。请参阅 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 |