STBuffer (тип данных geography)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает географический объект, представленный объединением всех точек, расстояние которых от экземпляра geography меньше или равно указанному значению.

Этот метод типа данных geography поддерживает экземпляры FullGlobe или пространственные экземпляры, размер которых больше полушария.

Синтаксис

  
.STBuffer ( distance )  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

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) * 0,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 * 0,001. Дополнительные сведения об экстентах см. в разделе Справочник по методам типа данных 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)
Методы OGC в экземплярах Geography