Douglas-Peucker アルゴリズムを使用して、ジオメトリ オブジェクトの単純化され、有効な表現を返します。
構文
geometry ST_SimplifyPreserveTopology(geometry geomA, float tolerance)パラメータ
| パラメータ | 説明 |
|---|---|
geomA | 単純化するジオメトリ オブジェクト。 |
tolerance | 指定するトレランス。 |
説明
ST_SimplifyPreserveTopology は、Douglas-Peucker 単純化アルゴリズムをジオメトリ オブジェクトに適用し、有効な結果を保証します。
サポートされているジオメトリ タイプ
単純化は、MultiLine、MultiPolygon、および MultiPoint オブジェクトに適用されます。GeometryCollection 入力の場合、コレクション内の各ジオメトリは個別に単純化されます。
ST_Simplify とは異なり、この関数は、特にポリゴン入力の場合、無効な派生ジオメトリ オブジェクトを返すことはありません。
例
次の例では、自己交差ポリゴンに対する ST_SimplifyPreserveTopology と ST_Simplify の出力を比較します。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)