ST_SimplifyPreserveTopology — 与えられたジオメトリを「簡略化」したものを返します.Douglas-Peukerを使用します.不正な派生ジオメトリ(特にポリゴン)を回避します.
geometry ST_SimplifyPreserveTopology(
geometry geomA, float tolerance)
;
与えられたジオメトリを「簡略化」したものを返します.Douglas-Peukerを使用します.不正な派生ジオメトリ(特にポリゴン)を回避します.(MULTI)LINEと(MULTI)POLYGONとで実際に動作をしますが,どのような種類のジオメトリでも安全に呼ぶことができます.簡略化はオブジェクトごとの基礎で発生するので,ジオメトリコレクションで,この関数を呼ぶことができます.
GEOSモジュールで実行しています
![]() | |
GEOS 3.0.0以上が必要です. |
初出バージョン: 1.3.3
Simplyfyと同じ例ですが,トポロジ保存で簡略化の行きすぎを阻止します.円は最高でも四角形になります.
SELECT ST_Npoints(the_geom) As np_before, ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.1)) As np01_notbadcircle, ST_NPoints(ST_SimplifyPreserveTopology(the_geom,0.5)) As np05_notquitecircle, ST_NPoints(ST_SimplifyPreserveTopology(the_geom,1)) As np1_octagon, ST_NPoints(ST_SimplifyPreserveTopology(the_geom,10)) As np10_square, ST_NPoints(ST_SimplifyPreserveTopology(the_geom,100)) As np100_stillsquare FROM (SELECT ST_Buffer('POINT(1 3)', 10,12) As the_geom) As foo; --result-- np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | np10_square | np100_stillsquare -----------+-------------------+---------------------+-------------+---------------+------------------- 49 | 33 | 17 | 9 | 5 | 5