使用Douglas-Peucker算法返回给定Geometry对象的简化版本,并避免创造无效Geometry对象。

语法

geometry  ST_SimplifyPreserveTopology(geometry  geomA , float  tolerance);

参数

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

描述

  • 该函数实际上只支持(Multi)Line、(Multi)Polygon和MultiPoint类型对象,但是你可以安全地对任何Geometry对象使用该函数。
  • 由于简化操作是逐个对象进行的,因此您还可以将GeometryCollection应用于该函数。
  • 该函数会避免创建新的派生的无效的Geometry对象(特别是多边形)。

示例

ST_SimplifyPreserveTopology和ST_Simplify结果对比:
SELECT ST_ASText(ST_SimplifyPreserveTopology(g,1)) as PreserveTopology ,ST_ASText(ST_Simplify(g,1)) as Normal from (select 'POLYGON((0 0,1 0,0 1,1 1,0 0))'::geometry as g) as t;
      preservetopology      | normal
----------------------------+--------
 POLYGON((0 0,1 0,1 1,0 0)) |
(1 row)