名稱

ST_IsValid — 測試幾何圖形在 2D 中是否為良好格式。

概要

boolean ST_IsValid(geometry g);

boolean ST_IsValid(geometry g, integer flags);

描述

根據 OGC 規則,測試 ST_Geometry 值在 2D 中是否為良好格式且有效。對於具有 3 和 4 維度的幾何圖形,仍然僅在 2 個維度中測試有效性。對於無效的幾何圖形,將發出 PostgreSQL NOTICE,提供其無效的詳細原因。

對於具有 flags 參數的版本,支援的值記錄在 ST_IsValidDetail 中。此版本不會列印 NOTICE 來解釋無效性。

有關幾何有效性定義的更多資訊,請參閱第 4.4 節「幾何驗證」

[Note]

SQL-MM 定義 ST_IsValid(NULL) 的結果為 0,而 PostGIS 則傳回 NULL。

由 GEOS 模組執行。

接受旗標的版本從 2.0.0 開始可用。

此方法實作了 OGC Simple Features Implementation Specification for SQL 1.1.

此方法實作了 SQL/MM 規範。SQL-MM 3: 5.1.9

[Note]

OGC-SFS 和 SQL-MM 規範均未包含 ST_IsValid 的旗標引數。該旗標是 PostGIS 的擴充功能。

範例

SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,
	ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As bad_poly
--results
NOTICE:  Self-intersection at or near point 0 0
 good_line | bad_poly
-----------+----------
 t         | f