Reduce (geometry-Datentyp)
Gibt einen Näherungswert der gegebenen geometry-Instanz zurück. Dieser Näherungswert wird unter Verwendung des Douglas-Peucker-Algorithmus mit der angegebenen Toleranz ermittelt.
Syntax
.Reduce ( tolerance )
Argumente
- tolerance
Ein Wert des Typs float. tolerance gibt die Toleranz an, die der Douglas-Peucker-Algorithmus verwenden soll.
Rückgabetypen
SQL Server-Rückgabetyp: geometry
CLR-Rückgabetyp: SqlGeometry
Hinweise
Bei Auflistungstypen arbeitet dieser Algorithmus unabhängig für jeden geometry-Wert, der in der Instanz enthalten ist.
Dieser Algorithmus ändert keine Point-Instanzen.
Bei LineString-Instanzen behält der Douglas-Peucker-Algorithmus die ursprünglichen Anfangs- und Endpunkte der Instanz bei und fügt iterativ so lange die Punkte der ursprünglichen Instanz wieder ein, die am stärksten vom Ergebnis abweichen, bis kein weiterer Punkt stärker abweicht, als die angegebene Toleranz erlaubt.
Auf Polygon-Instanzen wird der Douglas-Peucker-Algorithmus unabhängig für jeden Ring angewendet. Die Methode erzeugt eine FormatException, wenn die zurückgegebene Polygon-Instanz ungültig ist. Eine ungültige MultiPolygon-Instanz wird beispielsweise dann erstellt, wenn Reduce() zur Vereinfachung jedes Rings in der Instanz angewendet wird, und sich die ergebenden Ringe überschneiden.
Beispiele
Im folgenden Beispiel wird eine LineString-Instanz erstellt und Reduce() verwendet, um die Instanz zu vereinfachen.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 0, 0 1, 1 0, 2 1, 3 0, 4 1)', 0);
SELECT @g.Reduce(.75).ToString();