使用Visvalingam-Whyatt算法返回给定Geometry对象的简化版本。

语法

geometry  ST_SimplifyVW(geometry  geomA , float  tolerance);

参数

参数名称 描述
geomA 目标Geometry对象。
tolerance 容差。

描述

  • 该函数实际上只支持(Multi)Line、(Multi)Polygon和MultiPoint类型对象,但是你可以安全地对任何Geometry对象使用该函数。
  • 由于简化操作是逐个对象进行的,因此您还可以将GeometryCollection应用于该函数。
  • 返回的Geometry对象可能会丢失简单性。
  • 输入对象拓扑结构可能会变化,也可能会产生无效的Geometry对象。

    可以使用ST_SimplifyPreserveTopology来维持输入对象的拓扑结构。

  • 该函数支持3D对象,并且3D维度将影响结果。

示例

ST_Simplify和ST_SimplifyVW效果对比:
select g,ST_Simplify(g,0.5),
			 ST_SimplifyVW(g,0.5)
       from (select 'LINESTRING(0 0,2 2,3 1,3.5 1.5,5 0,5.25 0.25,5.5 0)'::geometry as g) as t;
123