ST_MakeValid — 尝试在不丢失顶点的情况下使无效几何体有效。
geometry
ST_MakeValid
(
geometry
input
)
;
geometry
ST_MakeValid
(
geometry
input
, text
params
)
;
该函数尝试在不丢失任何输入顶点的情况下创建给定无效几何体的有效表示。返回有效的几何图形时不会更改。
支持的输入包括:POINTS、MULTIPOINTS、LINESTRINGS、MULTILINESTRINGS、POLGON、MULTIPOLYGONS和GEOMETRYCOLLECTIONS,其中包含它们的任意组合。
在完全或部分维度收拢的情况下,输出几何图形可以是较低维度的几何图形的集合,也可以是较低维度的几何图形的集合。
在自交的情况下,单个多边形可能会变成多个几何图形。
这个
params
参数可用于提供选项字符串,以选择用于生成有效几何图形的方法。选项字符串的格式为“METHOD=LINEWORK|Structure Keep Caved=TRUE|FALSE”。
“方法”键有两个值。
“线条”是原始算法,它通过首先提取所有线条,将线条连接在一起,然后从线条生成输出值来构建有效的几何图形。
“结构”是一种区分内环和外环的算法,通过联合外环,然后区分所有内环来构建新的几何体。
该键仅对“Structure”算法有效,取值为“True”或“False”。当设置为“False”时,折叠到较低维度的几何图形组件将被丢弃,例如一点线串。
由GEOS模块执行。
可用性:2.0.0
增强版:2.0.1,速度提升
增强:2.1.0,添加了对GEOMETRYCOLLECTION和多点的支持。
增强:3.1.0,添加了移除带有NaN值的坐标。
增强:3.2.0,增加了算法选项,‘线条’和‘结构’。
This function supports 3d and will not drop the z-index.
![]() BEFORE_GEOM:两个重叠多边形的多重投影
![]() After_geom:4个非重叠多边形的多重聚
![]() AFTER_GEOM_STRUCTURE:1个非重叠多边形的多重组合
|
![]() BEFORE_GEOM:6个重叠多边形的多重聚
![]() After_geom:由14个不重叠的多边形组成的多重多边形
![]() AFTER_GEOM_STRUCTURE:1个非重叠多边形的多重组合
|