STBuffer (тип данных geography)
Возвращает географический объект, представленный объединением всех точек, расстояние которых от экземпляра geography меньше или равно указанному значению.
Этот метод типа данных geography поддерживает экземпляры FullGlobe или пространственные экземпляры, размер которых больше полушария.
Синтаксис
.STBuffer ( distance )
Аргументы
distance
Значение типа float (double в .NET Framework), указывающее расстояние от объекта geography, вокруг которого вычисляется буфер.Максимальное расстояние при вычислении буфера не может превышать 0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 окружности Земли) или полную окружность Земли.
Типы возвращаемых данных
Возвращаемый тип SQL Server: geography
Возвращаемый тип CLR: SqlGeography
Замечания
Метод STBuffer() вычисляет буфер аналогично методу BufferWithTolerance, задавая значения параметров tolerance = abs(distance) * .001 и relative = false.
Отрицательный буфер удаляет все точки в пределах заданного расстояния от границы экземпляра geography.
STBuffer() возвращает экземпляр FullGlobe в определенных случаях; например, STBuffer() возвращает экземпляр FullGlobe, если буферное расстояние больше, чем расстояние от экватора до полюса. Буфер не может превышать по размеру полный шар.
Этот метод вызовет исключение ArgumentException в тех экземплярах FullGlobe, где расстояние буфера превышает следующее ограничение:
0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 окружности Земли)
Ограничение максимального расстояние позволяет конструкции буфера быть как можно более гибкой.
Допустимое расхождение между теоретическим и вычисляемым буферами составляет max(tolerance, extents * 1.E-7), где tolerance = distance * .001. Дополнительные сведения о параметре extents см. в разделе Справочник по методам типа данных geography.
Примеры
В следующем примере создается экземпляр LineString geography. Затем используется метод STBuffer(), чтобы возвратить область в пределах 1 метра от экземпляра.
DECLARE @g geography;
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STBuffer(1).ToString();
См. также
Справочник
BufferWithTolerance (тип данных geography)