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 包含 flag 参数。该 flag 是 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