Freigeben über


STBuffer (geography-Datentyp)

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

Gibt ein geography-Objekt zurück, dass die Vereinigung aller Punkte darstellt, deren Abstand zu einer Instanz von geography kleiner oder gleich einem angegebenen Wert ist.

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

Syntax

  
.STBuffer ( distance )  

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 Wert vom Typ float (double in .NET-Framework), 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 Erdumfang) oder den vollständigen Erdumfang nicht überschreiten.

Rückgabetypen

SQL Server-Rückgabetyp: geography

CLR-Rückgabetyp: SqlGeography

Bemerkungen

„STBuffer()“ berechnet einen Puffer auf die gleiche Weise wie BufferWithTolerance, wobei Toleranz = abs(distance) × 0,001 und relativ = false ist.

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

STBuffer() gibt in bestimmten Fällen eine Instanz von FullGlobe zurück. Beispielsweise gibt STBuffer() eine FullGlobe-Instanz zurück, wenn der Pufferabstand größer als der Abstand vom Äquator zu den Polen ist. Ein Puffer kann nicht über die vollständige Kugel hinausgehen.

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 Begrenzung des maximal möglichen Abstands ermöglicht das Erstellen von äußerst flexiblen Puffern.

Die Abweichung zwischen dem theoretischen und dem berechneten Puffer beträgt max(tolerance, extents × 1,E-7), wobei tolerance = distance × 0,001 ist. Weitere Informationen zu Erweiterungen finden Sie unter geography-Datentyp-Methodenverweis.

Beispiele

Im folgenden Beispiel wird eine LineString``geography-Instanz erstellt. Anschließend wird STBuffer() verwendet, um den Bereich innerhalb von 1 Meter Umkreis um die Instanz zurückzugeben.

DECLARE @g geography;  
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);  
SELECT @g.STBuffer(1).ToString();  

Weitere Informationen

BufferWithTolerance (geography-Datentyp)
OGC-Methoden für geography-Instanzen