STBuffer (geography Data Type)

THIS TOPIC APPLIES TO:yesSQL Server (starting with 2012)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Returns a geography object that represents the union of all points whose distance from a geography instance is less than or equal to a specified value.

This geography data type method supports FullGlobe instances or spatial instances that are larger than a hemisphere.


.STBuffer ( distance )  


Is a value of type float (double in the .NET Framework) specifying the distance from the geography instance around which to calculate the buffer.

The maximum distance of the buffer cannot exceed 0.999 * π * minorAxis * minorAxis / majorAxis (~0.999 * 1/2 Earth’s circumference) or the full globe.

Return Types

SQL Server return type: geography

CLR return type: SqlGeography


STBuffer() calculates a buffer in the same manner as BufferWithTolerance, specifying tolerance = abs(distance) * .001 and relative = false.

A negative buffer removes all points within the given distance of the boundary of the geography instance.

STBuffer() will return a FullGlobe instance in certain cases; for example, STBuffer() returns a FullGlobe instance when the buffer distance is greater than the distance from the equator to the poles. A buffer cannot exceed the full globe.

This method will throw an ArgumentException in FullGlobe instances where the distance of the buffer exceeds the following limitation:

0.999 * π * minorAxis * minorAxis / majorAxis (~0.999 * 1/2 Earth’s circumference)

The maximum distance limit allows the construction of the buffer to be as flexible as possible.

The error between the theorectical and computed buffer is max(tolerance, extents * 1.E-7) where tolerance = distance * .001. For more information on extents, see geography Data Type Method Reference.


The following example creates a LineString``geography instance. It then uses STBuffer() to return the region within 1 meter of the instance.

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

See Also

BufferWithTolerance (geography Data Type)
OGC Methods on Geography Instances