名前

ST_Simplify — 与えられたジオメトリを「簡略化」したものを返します。Douglas-Peukerアルゴリズムを使用します。

概要

geometry ST_Simplify(geometry geomA, float tolerance);

説明

与えられたジオメトリを「簡略化」したものを返します。Douglas-Peukerアルゴリズムを使用します。(MULTI)LINEと(MULTI)POLYGONとで実際に動作をしますが、どのような種類のジオメトリでも安全に呼ぶことができます。簡略化はオブジェクトごとに行われるので、ジオメトリコレクションでこの関数を呼ぶことができます。

[注記]

返されるジオメトリは単純さ(ST_IsSimple参照)を失うことがあります。トポロジを保存するにはST_SimplifyPreserveTopologyを使います。

GEOSモジュールで実現しています。

初出: 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;
-result
 np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | np10_triangle | np100_geometrygoesaway
-----------+-------------------+---------------------+-------------+---------------+------------------------
		49 |                33 |                  17 |           9 |             4 | t

				

関連情報

ST_IsSimple, ST_SimplifyPreserveTopology