BufferWithTolerance (geography Data Type)
Returns a geometric object representing the union of all point values whose distance from a geography instance is less than or equal to a specified value, allowing for a specified tolerance.
This geography data type method supports FullGlobe instances or spatial instances that are larger than a hemisphere.
This method will throw an ArgumentException if the distance is not a number (NAN), or if distance is positive or negative infinity. This method will also throw an ArgumentException if tolerance is zero (0), not a number (NaN), negative, or positive or negative infinity.
STBuffer() will return a FullGlobe instance in certain cases; for example, STBuffer() returns a FullGlobe instance on two poles when the buffer distance is greater than the distance from the equator to the poles.
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 error between the theorectical and computed buffer is max(tolerance, extents * 1.E-7) where tolerance is the value of the tolerance parameter. For more information on extents, see geography Data Type Method Reference.
This method is not precise.
The following example creates a Point instance and uses BufferWithTolerance() to obtain a rough buffer around it.
DECLARE @g geography; SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326); SELECT @g.BufferWithTolerance(1, .5, 0).ToString();