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。 |
面沒有邊緣 | 孤立面的識別碼。 | 沒有任何邊緣在其任一側(左面、右面)報告現有的面。 | |
面沒有環 | 部分定義的面的識別碼。 | 在其側面報告面的邊緣沒有形成環。 | |
面具有錯誤的最小邊界矩形 | 具有錯誤最小邊界矩形快取的面的識別碼。 | 面的最小邊界矩形,與在其側面報告該面的邊緣集合的最小邊界框不符。 | |
孔洞不在宣告的面內 | 邊緣的帶號識別碼,用於識別環。請參閱 GetRingEdges。 | 在其外部報告面的邊緣環,包含在不同的面中。 | |
非孤立節點沒有包含面 | 定義錯誤的節點的識別碼。 | 一個或多個邊緣的邊界上的節點,指示一個包含的面。 | |
孤立節點具有包含面 | 定義錯誤的節點的識別碼。 | 未報告為在任何邊緣的邊界上的節點,缺乏包含面的指示。 | |
孤立節點具有錯誤的包含面 | 錯誤表示的節點的識別碼。 | 未報告為在任何邊緣的邊界上的節點,指示的包含面並非實際包含它的面。請參閱 GetFaceContainingPoint。 | |
無效的 next_right_edge | 錯誤表示的邊緣的識別碼。 | 應該指示為下一個右側邊緣的邊緣帶號識別碼。 | 指示為在邊緣右側行走時遇到的下一個邊緣是錯誤的。 |
無效的 next_left_edge | 錯誤表示的邊緣的識別碼。 | 應該指示為下一個左側邊緣的邊緣帶號識別碼。 | 指示為在邊緣左側行走時遇到的下一個邊緣是錯誤的。 |
環中混合的面標籤 | 邊緣的帶號識別碼,用於識別環。請參閱 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 |