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