Freigeben über


BufferWithTolerance (geography-Datentyp)

Gibt ein geometrisches Objekt zurück, dass die Vereinigung aller Punktwerte darstellt, deren Abstand zu einer geography-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 geography-Instanz angibt, um die der Puffer berechnet werden soll.

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

    Der Toleranzwert 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 aus tolerance-Parameter und Winkelweite * Äquatorradius des Ellipsoids 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: geography

CLR-Rückgabetyp: SqlGeography

Hinweise

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

Der Fehler zwischen theoretischem und berechnetem Puffer beträgt max(Toleranz, Blöcke * 1.E-7), wenn Toleranz ein Wert des tolerance-Parameters ist. Weitere Informationen zu Blöcken finden Sie unter geography-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 geography;
SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();