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