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.

Diese geography-Datentypmethode unterstützt Instanzen von FullGlobe oder räumliche Instanzen, die größer als eine Hemisphäre sind.

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.

    Der maximale Abstand des Puffers darf 0.999 * π * minorAxis * minorAxis / majorAxis (~0.999 * 1/2 Kugelumfang) oder die vollständige Kugel nicht überschreiten.

  • 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.

    Die minimale Grenze ist 0,1 Prozent des Abstands, und geringere Toleranzen werden auf die minimale Grenze aufgerundet.

  • 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

Diese Methode löst eine ArgumentException aus, wenn distance keine Zahl (NAN) oder distance positiv oder minus unendlich ist. Diese Methode löst ebenfalls eine ArgumentException aus, wenn tolerance 0, keine Zahl (NaN), negativ oder positiv oder minus unendlich ist.

STBuffer() gibt in bestimmten Fällen eine Instanz von FullGlobe zurück. Beispielsweise gibt STBuffer() eine Instanz von FullGlobe für zwei Pole zurück, wenn der Pufferabstand größer als der Abstand vom Äquator zu den Polen ist.

Diese Methode löst in Instanzen von FullGlobe eine ArgumentException aus, bei denen der Abstand des Puffers die folgende Einschränkung überschreitet:

0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 Kugelumfang)

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 zu extents finden Sie unter geography-Datentyp-Methodenverweis.

Diese Methode ist nicht exakt.

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

Siehe auch

Verweis

STBuffer (geography-Datentyp)

Andere Ressourcen

Erweiterte Methoden für geography-Instanzen