Freigeben über


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();

Siehe auch

Andere Ressourcen