名前

ST_IsValid — ST_Geometryが整形されている場合にtrueを返します。

概要

boolean ST_IsValid(geometry g);

boolean ST_IsValid(geometry g, integer flags);

説明

ST_Geometry値が整形されているかを見ます。不正なジオメトリに対しては、その理由の詳細をPostgreSQLの警告で提供します。OGCのジオメトリ単純性と妥当性の定義に関する詳細情報については「"ジオメトリのOpenGIS準拠を確実にする」をご覧ください。

[注記]

SQL-MMでは、ST_IsValid(NULL)は0を返しますが、PostGISではNULLを返します。

flagsを受け付ける版は、2.0.0で追加されました。GEOS >= 3.3.0が必要です。不正の説明をPostgreSQLの警告で印字しません。許されるflagsについてはST_IsValidDetailをご覧ください。

このメソッドはOpenGIS Simple Features Implementation Specification for SQL 1.1.の実装です

このメソッドはSQL/MM仕様の実装です。 SQL-MM 3: 5.1.9

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

追加情報

ST_IsSimple, ST_IsValidReason, ST_IsValidDetail, ST_Summary