- Kategorien:
ST_SIMPLIFY¶
Gibt bei einem GEOGRAPHY-Eingabeobjekt, das eine Linie oder ein Polygon darstellt, eine vereinfachte Approximation des Objekts zurück. Die Funktion verwendet den Douglas-Peucker-Algorithmus, um ausgewählte Punkte zu identifizieren und zu entfernen und so einfachere Objekte mit weniger Punkten zu erhalten.
Wenn das Eingabeobjekt beispielsweise ein Polygon mit 50 Punkten ist, kann ST_SIMPLIFY ein einfacheres Polygon mit nur 20 Punkten zurückgeben.
Bei der Vereinfachung eines Objekts entfernt die Funktion einen Punkt nur dann, wenn der Abstand zwischen diesem Punkt und der Verbindungslinie, die bei Entfernen dieses Punktes entsteht, innerhalb der angegebenen Toleranz liegt.
Syntax¶
ST_SIMPLIFY( <geography_expression>, <tolerance> [ , <preserve_collapsed> ] )
Argumente¶
Erforderlich:
Geografischer_Ausdruck
Das zu vereinfachende GEOGRAPHY-Objekt.
Abhängig vom Typ des GEOGRAPHY-Objekts hat ST_SIMPLIFY folgende Auswirkung:
Objekttyp
Auswirkung von ST_SIMPLIFY
LineString, MultiLineString, Polygon oder MultiPolygon
ST_SIMPLIFY wendet den Vereinfachungsalgorithmus an
Punkt oder MultiPoint
ST_SIMPLIFY hat keine Auswirkung.
GeometryCollection oder FeatureCollection
ST_SIMPLIFY wendet den Vereinfachungsalgorithmus auf jedes Objekt in der Collection an.
Toleranz
Der maximale Abstand in Metern zwischen einem Punkt und der Verbindungslinie, die durch Entfernen des Punkts entsteht. Wenn der Abstand den Toleranzwert für einen Punkt überschreitet, behält ST_SIMPLIFY diesen Punkt im vereinfachten Objekt bei.
Optional:
Kollabierte_behalten
Wenn
TRUE
, werden Objekte beibehalten, die angesichts der Toleranz sonst zu klein wären.Wenn beispielsweise
Kollabierte_behalten
aufFALSE
gesetzt ist undToleranz
den Wert10
(Meter) hat, wird eine 1 m lange Linie auf einen Punkt im vereinfachten Objekt reduziert. WennKollabierte_behalten
aufTRUE
gesetzt ist, bleibt die Linie im vereinfachten Objekt erhalten.Standard:
FALSE
.
Rückgabewerte¶
Gibt einen Wert vom Typ GEOGRAPHY zurück.
Beispiele¶
In den Beispielen in diesem Abschnitt wird die Ausgabe im WKT-Format angezeigt:
alter session set GEOGRAPHY_OUTPUT_FORMAT='WKT';
Das folgende Beispiel gibt ein vereinfachtes LineString-Objekt zurück, das weniger Punkte als das ursprüngliche LineString-Objekt hat. In dem vereinfachten Objekt wird ein Punkt weggelassen, wenn der Abstand zwischen dem Punkt und der Verbindungslinie, die bei Entfernen des Punktes entsteht, weniger als 1.000 Meter beträgt.
SELECT ST_SIMPLIFY( TO_GEOGRAPHY('LINESTRING(-122.306067 37.55412, -122.32328 37.561801, -122.325879 37.586852)'), 1000); +----------------------------------------------------------------------------------------------------+ | ST_SIMPLIFY( | | TO_GEOGRAPHY('LINESTRING(-122.306067 37.55412, -122.32328 37.561801, -122.325879 37.586852)'), | | 1000) | |----------------------------------------------------------------------------------------------------| | LINESTRING(-122.306067 37.55412,-122.325879 37.586852) | +----------------------------------------------------------------------------------------------------+