PostGIS
Synopsis
geometry +`*`+ST_Simplify
*(`geometry `geomA
, float
tolerance`
)`;
geometry +`*`+ST_Simplify
*(`geometry `geomA
, float
tolerance
, boolean preserveCollapsed`
)`;
Description
Returns a "simplified" version of the given geometry using the Douglas-Peucker algorithm. Will actually do something only with (multi)lines and (multi)polygons but you can safely call it with any kind of geometry. Since simplification occurs on a object-by-object basis you can also feed a GeometryCollection to this function.
The "preserve collapsed" flag will retain objects that would otherwise
be too small given the tolerance. For example, a 1m long line simplified
with a 10m tolerance. If preserveCollapsed
argument is specified as
true, the line will not disappear. This flag is useful for rendering
engines, to avoid having large numbers of very small objects disappear
from a map leaving surprising gaps.
|
|
Availability: 1.2.2
Examples
A circle simplified too much becomes a triangle, medium an octagon,
SELECT ST_Npoints(geom) AS np_before,
ST_NPoints(ST_Simplify(geom,0.1)) AS np01_notbadcircle,
ST_NPoints(ST_Simplify(geom,0.5)) AS np05_notquitecircle,
ST_NPoints(ST_Simplify(geom,1)) AS np1_octagon,
ST_NPoints(ST_Simplify(geom,10)) AS np10_triangle,
(ST_Simplify(geom,100) is null) AS np100_geometrygoesaway
FROM
(SELECT ST_Buffer('POINT(1 3)', 10,12) As geom) AS foo;
np_before | np01_notbadcircle | np05_notquitecircle | np1_octagon | np10_triangle | np100_geometrygoesaway
-----------+-------------------+---------------------+-------------+---------------+------------------------
49 | 33 | 17 | 9 | 4 | t