Name

ST_IsValid — 测试几何图形在二维中是否格式良好。

Synopsis

boolean ST_IsValid(geometry g);

boolean ST_IsValid(geometry g, integer flags);

描述

根据OGC规则测试ST_Geometry值在二维中是否格式正确且有效。对于三维和四维的几何图形,有效性仍然只在两个维度上进行测试。对于无效的几何图形,将发出PostgreSQL通知,详细说明无效的原因。

对于包含 flags 参数,支持的值记录在 ST_IsValidDetail 此版本不会打印解释无效的通知。

有关几何有效性定义的详细信息,请参阅 Section 4.4, “几何图形验证”

[Note]

SQL-MM将ST_IsValid(NULL)的结果定义为0,而PostGIS返回NULL。

由GEOS模块执行。

版本接受标志从2.0.0开始可用。

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

This method implements the SQL/MM specification. 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

另请参阅

ST_IsSimple, ST_IsValidReason, ST_IsValidDetail,