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