使用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)