Name

ST_SimplifyVW — Liefert eine vereinfachte Darstellung einer Geometrie unter Verwendung des Visvalingam-Whyatt-Algorithmus

Synopsis

geometry ST_SimplifyVW(geometry geom, float tolerance);

Beschreibung

Liefert eine vereinfachte Darstellung einer Geometrie unter Verwendung des Visvalingam-Whyatt-Algorithmus. Die Vereinfachung Toleranz ist ein Flächenwert, in den Einheiten der Eingabe SRS. Bei der Vereinfachung werden Eckpunkte entfernt, die "Ecken" mit einer Fläche kleiner als die Toleranz bilden. Das Ergebnis ist möglicherweise nicht gültig, auch wenn die Eingabe stimmt.

Die Funktion kann mit jeder Art von Geometrie (einschließlich GeometryCollections) aufgerufen werden, aber nur Linien- und Polygonelemente werden vereinfacht. Die Endpunkte der linearen Geometrie bleiben erhalten.

[Note]

Die zurückgegebene Geometrie kann ihre Einfachheit verlieren (siehe ST_IsSimple), die Topologie bleibt möglicherweise nicht erhalten, und polygonale Ergebnisse können ungültig sein (siehe ST_IsValid). Verwenden Sie ST_SimplifyPreserveTopology, um die Topologie zu erhalten und die Gültigkeit sicherzustellen. ST_CoverageSimplify erhält ebenfalls die Topologie und die Gültigkeit.

[Note]

Diese Funktion erhält keine gemeinsamen Grenzen zwischen Polygonen. Verwenden Sie ST_CoverageSimplify, wenn dies erforderlich ist.

[Note]

Diese Funktion kann mit 3D umgehen und die dritte Dimension beeinflusst auch das Ergebnis.

Verfügbarkeit: 2.2.0

Beispiele

Ein LineString wird mit einer minimalen Flächentoleranz von 30 vereinfacht.

SELECT ST_AsText(ST_SimplifyVW(geom,30)) simplified
  FROM (SELECT 'LINESTRING(5 2, 3 8, 6 20, 7 25, 10 10)'::geometry AS geom) AS t;

 simplified
------------------------------
LINESTRING(5 2,7 25,10 10)

Vereinfachung einer Linie.

SELECT ST_SimplifyVW(
  'LINESTRING (10 10, 50 40, 30 70, 50 60, 70 80, 50 110, 100 100, 90 140, 100 180, 150 170, 170 140, 190 90, 180 40, 110 40, 150 20)',
    1600);

Vereinfachung eines Polygons.

SELECT ST_SimplifyVW(
  'MULTIPOLYGON (((90 110, 80 180, 50 160, 10 170, 10 140, 20 110, 90 110)), ((40 80, 100 100, 120 160, 170 180, 190 70, 140 10, 110 40, 60 40, 40 80), (180 70, 170 110, 142.5 128.5, 128.5 77.5, 90 60, 180 70)))',
    40);