Freigeben über


STBuffer (geography-Datentyp)

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 )

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 Kugelumfang) oder die vollständige Kugel nicht überschreiten.

Rückgabetypen

SQL Server Rückgabetyp: geography

CLR-Rückgabetyp: SqlGeography

Hinweise

STBuffer() berechnet einen Puffer auf die gleiche Weise wie BufferWithTolerance, wobei tolerance = abs(distance) * 0,001 and relative = 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 Instanz von FullGlobe 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 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 Begrenzung des maximal möglichen Abstands ermöglicht das Erstellen von äußerst flexiblen Puffern.

Die Abweichung zwischen dem theoretischen und dem berechnetem Puffer ist max(tolerance, extents * 1.E-7), wobei tolerance = distance * .001 ist. Weitere Informationen zu extents 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();

Siehe auch

Verweis

BufferWithTolerance (geography-Datentyp)

Andere Ressourcen

OGC-Methoden für geography-Instanzen