STBuffer (тип данных geography)
Область применения: SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
базе данных SQL в Microsoft Fabric
Возвращает географический объект, представленный объединением всех точек, расстояние которых от экземпляра 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) * 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