Name

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

Synopsis

boolean ST_IsValid(geometry g);

boolean ST_IsValid(geometry g, integer flags);

説明

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

[Note]

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

flagsを受け付ける形式が2.0.0で追加されました。GEOS 3.3.0以上が必要です。不正の説明をPostgreSQLのNOTICEで印字しません。許されるflagsについてはST_IsValidDetailをご覧ください。

This method implements the OpenGIS Simple Features Implementation Specification for SQL 1.1.

This method implements the SQL/MM specification. SQL-MM 3: 5.1.9

[Note]

Neither OGC-SFS nor SQL-MM specifications include a flag argument for ST_IsValid. The flag is a PostGIS extension.

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
-- 結果
NOTICE:  Self-intersection at or near point 0 0
 good_line | bad_poly
-----------+----------
 t         | f

関連情報

ST_IsSimple, ST_IsValidReason, ST_IsValidDetail, ST_Summary