ST_Simplify — Returns a simplified version of a geometry, using the Douglas-Peucker algorithm.
geometry ST_Simplify(
geometry geomA, float tolerance)
;
geometry ST_Simplify(
geometry geomA, float tolerance, boolean preserveCollapsed)
;
Gibt eine "vereinfachte" Version der gegebenen Geometrie zurück. Verwendet den Douglas-Peucker Algorithmus. Tut zurzeit nur mit (Multi)Lines und (Multi)Polygons etwas, kann aber gefahrlos mit jedem geometrischen Datentyp verwendet werden. Da die Vereinfachung auf einer Objekt zu Objekt Basis passiert, können Sie diese Funktion auch mit einer Sammelgeometrie speisen.
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.
Bemerke, dass die zurückgegebene Geometrie ihre Simplizität verlieren kann (siehe ST_IsSimple). |
Beachten Sie bitte, das die Topologie möglicherweise nicht erhalten bleibt und ungültige Geometrien entstehen können. Benutzen Sie bitte (see ST_SimplifyPreserveTopology) um die Topologie zu erhalten. |
Verfügbarkeit: 1.2.2
Ein zu stark vereinfachter Kreis wird zu einem Dreieck, mittelmäßig vereinfacht zum Achteck:
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