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 節「幾何驗證」
![]() |
|
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
![]() |
|
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