Freigeben über


BufferWithTolerance (geometry-Datentyp)

Gibt ein geometrisches Objekt zurück, das die Vereinigung aller Punktwerte darstellt, deren Abstand zu einer geometry-Instanz kleiner oder gleich einem angegebenen Wert ist, wobei eine angegebene Toleranz gewährt wird.

Syntax

.BufferWithTolerance (distance,tolerance,relative)

Argumente

  • distance
    Ein float-Ausdruck, der den Abstand zu der geometry-Instanz angibt, um die der Puffer berechnet werden soll.

  • tolerance
    Ein float-Ausdruck, der die Toleranz des Pufferabstands angibt.

    Toleranz verweist auf die maximale Variation im idealen Pufferabstand für die zurückgegebene lineare Näherung.

    Beispielsweise kann der ideale Pufferabstand eines Punkts ein Kreis sein, dieser muss jedoch durch ein Polygon näherungsweise angegeben werden. Je geringer die Toleranz, desto mehr Punkte hat das Polygon, wodurch die Komplexität des Ergebnisses erhöht, der Fehler jedoch verringert wird.

  • relative
    Ein bit, das angibt, ob der tolerance-Wert relativ oder absolut ist. Wenn 'TRUE' oder 1, ist die Toleranz relativ und wird als Produkt des tolerance-Parameters und des Durchmessers des umgebenden Felds der Instanz berechnet. Wenn 'FALSE' oder 0, ist die Toleranz absolut und der tolerance-Wert ist die absolute maximale Variation im idealen Pufferabstand für die zurückgegebene lineare Näherung.

Rückgabetypen

SQL Server Rückgabetyp: geometry

CLR-Rückgabetyp: SqlGeometry

Hinweise

Ein negativer Puffer entfernt alle Punkte innerhalb des gegebenen Abstands der Begrenzung der geometry-Instanz.

Die Abweichung zwischen dem theoretischen und dem berechnetem Puffer ist max(tolerance, extents * 1.E-7), wobei tolerance der Wert des tolerance-Parameters ist. Weitere Informationen zum extents finden Sie unter geometry-Datentyp-Methodenverweis.

Beispiele

Im folgenden Beispiel wird eine Point-Instanz erstellt und BufferWithTolerance() verwendet, um einen groben Puffer um die Instanz zu erhalten.

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(3 3)', 0);
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();