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 中。此版本不会打印解释无效性的通知。
有关几何有效性定义的更多信息,请参阅第 Section 4.4, “几何有效性验证”
SQL-MM 将 ST_IsValid(NULL) 的结果定义为 0,而 PostGIS 返回 NULL。 |
这个函数是由 GEOS 模块执行的。
接受标志的版本从 2.0.0 开始可用。
此方法实现了 SQL 1.1 的 OGC 简单功能规范。
该方法实现了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