ST_Simplify — Douglas-Peukerアルゴリズムを使用して、与えられたジオメトリを簡略化したものを返します。
geometry ST_Simplify(
geometry geomA, float tolerance, boolean preserveCollapsed)
;
与えられたジオメトリを「簡略化」したものを返します。Douglas-Peukerアルゴリズムを使用します。(MULTI)LINEと(MULTI)POLYGONとで実際に動作をしますが、どのような種類のジオメトリでも安全に呼ぶことができます。簡略化はオブジェクトごとに行われるので、ジオメトリコレクションでこの関数を呼ぶことができます。
"preserve collapsed"フラグによって、許容範囲より非常に小さいオブジェクトが保持されます。例えば、1メートル長のラインを10メートルの許容範囲で簡略化する場合です。"preserve"フラグを与えると、ラインは消去されません。このフラグは、多数の非常に小さいオブジェクトを持っていて、これらが想定外の隙間を残して地図から消えることを避けるのに使えます。
![]() | |
返されるジオメトリは単純性 (ST_IsSimple参照)を失うことがあります。 |
![]() | |
トポロジは保存されているとは限らず、不正なジオメトリを返すことがあります。トポロジを保存するにはST_SimplifyPreserveTopologyを使います。 |
Availability: 1.2.2
簡略化をやりすぎて三角形になった円、八角形になった円です。
SELECT ST_Npoints(the_geom) AS np_before, ST_NPoints(ST_Simplify(the_geom,0.1)) AS np01_notbadcircle, ST_NPoints(ST_Simplify(the_geom,0.5)) AS np05_notquitecircle, ST_NPoints(ST_Simplify(the_geom,1)) AS np1_octagon, ST_NPoints(ST_Simplify(the_geom,10)) AS np10_triangle, (ST_Simplify(the_geom,100) is null) AS np100_geometrygoesaway FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) AS foo; np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | np10_triangle | np100_geometrygoesaway -----------+-------------------+---------------------+-------------+---------------+------------------------ 49 | 33 | 17 | 9 | 4 | t