在不丢弃顶点的情况下,把无效的Geometry对象转换成有效的Geometry对象。

语法

geometry  ST_MakeValid(geometry  input);

参数

参数名称 描述
input 目标Geometry对象。

描述

  • 对于有效的几何图形不进行处理。
  • 支持的输入类型有:Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon和GeometryCollection即前面类型的任意混合类型。
  • 如果有部分或者全部维度损失,输出的Geometry对象是一个更低维度Geometry对象的集合或者一个更低维度的Geometry对象。
  • 有自相交的简单多边形可能会返回成Multi类型对象。

示例

尝试修复自相交POLYGON对象:
SELECT ST_AsText(ST_MakeValid('POLYGON((0 0,0 1,1 0,1 1,0 0))'));
                           st_astext
----------------------------------------------------------------
 MULTIPOLYGON(((0 0,0 1,0.5 0.5,0 0)),((0.5 0.5,1 1,1 0,0.5 0.5.
.)))
(1 row)