Freigeben über


BufferWithTolerance (geography-Datentyp)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Gibt ein geometrisches Objekt zurück, das 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 )  

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

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

Der maximale Abstand des Puffers darf 0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 Erdumfang) oder den vollständigen Umfang der Erde nicht überschreiten.

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

Die maximale Variation im idealen Pufferabstand für die zurückgegebene lineare Näherung ist der Wert tolerance.

Beispielsweise kann der ideale Pufferabstand eines Punkts ein Kreis sein, dieser Abstand muss jedoch durch ein Polygon näherungsweise angegeben werden. Je kleiner die Toleranz, desto mehr Punkte wird das Polygon haben. Dieses Ergebnis erhöht die Komplexität des Ergebnisses, minimiert aber den Fehler.

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 der Wert „TRUE“ oder 1 ist, ist die Toleranz relativ. Dieser Wert ergibt sich aus dem tolerance-Parameter und (Winkelweite * Äquatorradius) des Ellipsoids. Die Toleranz ist absolut, wenn der Wert „FALSE“ oder 0 ist. Dieser 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

Bemerkungen

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

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

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

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

Die Abweichung zwischen dem theoretischen und dem berechneten Puffer beträgt max(tolerance, extents * 1,E-7), wobei die Toleranz der Wert des Parameters tolerance ist. Weitere Informationen zu Erweiterungen 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

STBuffer (geography-Datentyp)
Erweiterte Methoden für geography-Instanzen