BufferWithCurves (тип данных geography)BufferWithCurves (geography Data Type)

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL DatabaseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database

Возвращает экземпляр geography, представляющий набор всех точек, расстояние которых от вызывающего экземпляра geography меньше параметра distance или равно ему.Returns a geography instance that represents the set of all points whose distance from the calling geography instance is less than or equal to the distance parameter.

СинтаксисSyntax

  
.BufferWithCurves ( distance )  

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

АргументыArguments

distancedistance
Имеет тип float и указывает максимальное расстояние, на котором точки, составляющие буфер, могут находиться от экземпляра geography.Is a float indicating the maximum distance that points forming the buffer can be from the geography instance.

Типы возвращаемых данныхReturn Types

Тип возвращаемых данных SQL ServerSQL Server: geographySQL ServerSQL Server return type: geography

Тип возвращаемых данных CLR: SqlGeographyCLR return type: SqlGeography

ИсключенияExceptions

Следующие критерии вызовут исключение ArgumentException.The following criteria will throw an ArgumentException.

  • Методу, например @g.BufferWithCurves(), не передаются никакие параметрыNo parameter is passed to the method such as @g.BufferWithCurves()

  • Методу, например @g.BufferWithCurves('a'), передается нечисловой параметрA non-numeric parameter is passed to the method such as @g.BufferWithCurves('a')

  • NULL передается методу, например @g.BufferWithCurves(NULL)NULL is passed to the method, such as @g.BufferWithCurves(NULL)

КомментарииRemarks

В следующей таблице показаны результаты, возвращенные для разных значений расстояния.The following table shows the results returned for different distance values.

Значение расстоянияdistance Value Измерения типаType Dimensions Возвращенный пространственный типSpatial Type Returned
расстояние < 0distance < 0 Ноль или одинZero or One Пустой экземпляр GeometryCollectionEmpty GeometryCollection instance
расстояние < 0distance < 0 Два и болееTwo or More Экземпляр CurvePolygon или GeometryCollection с отрицательным буфером.A CurvePolygon or GeometryCollection instance with a negative buffer.

Примечание. Отрицательный буфер может создать пустой экземпляр GeometryCollectionNote: A negative buffer may create an empty GeometryCollection
расстояние = 0distance = 0 Все измеренияAll dimensions Копия вызывающего экземпляра geographyCopy of the invoking geography instance
расстояние > 0distance > 0 Все измеренияAll dimensions Экземпляр CurvePolygon или GeometryCollectionCurvePolygon or GeometryCollection instance

Примечание

Поскольку аргумент distance относится к типу float, в расчетах очень маленькое значение может быть приравнено к нулю.Since distance is a float, a very small value can equate to zero in the calculations. Когда это происходит, возвращается копия вызывающего экземпляра geography.When this occurs, then a copy of the calling geography instance is returned.

Если методу передается параметр string, то он будет преобразован в тип float или возникнет исключение ArgumentException.If a string parameter is passed to the method, then it will be converted to a float or it will throw an ArgumentException.

ПримерыExamples

A.A. Вызов метода BufferWithCurves() со значением параметра < 0 для экземпляра одномерного географического объектаCalling BufferWithCurves() with a parameter value < 0 on one-dimensional geography instance

В следующем примере возвращается пустой экземпляр GeometryCollection:The following example returns an empty GeometryCollection instance:

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(-1).ToString();

Б.B. Вызов метода BufferWithCurves() со значением параметра < 0 для экземпляра двумерного географического объектаCalling BufferWithCurves() with a parameter value < 0 on a two-dimensional geography instance

В следующем примере возвращается экземпляр CurvePolygon с отрицательным буфером:The following example returns a CurvePolygon instance with a negative buffer:

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
SELECT @g.BufferWithCurves(-1).ToString()

В.C. Вызов функции BufferWithCurves() со значением параметра < 0, которая возвращает пустую коллекцию GeometryCollectionCalling BufferWithCurves() with a parameter value < 0 that returns an empty GeometryCollection

Следующий пример демонстрирует, что происходит, когда параметр distance равняется –2:The following example shows what occurs when the distance parameter equals -2:

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
SELECT @g.BufferWithCurves(-2).ToString();

Эта инструкция SELECT возвращает GEOMETRYCOLLECTION EMPTYThis SELECT statement returns GEOMETRYCOLLECTION EMPTY

Г.D. Вызов функции BufferWithCurves() со значением параметра = 0Calling BufferWithCurves() with a parameter value = 0

В следующем примере возвращается копия вызывающего экземпляра geography:The following example returns a copy of the calling geography instance:

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(0).ToString();

Д.E. Вызов функции BufferWithCurves() с ненулевым, но очень малым значением параметраCalling BufferWithCurves() with a non-zero parameter value that is extremely small

В следующем примере также возвращается копия вызывающего экземпляра geography:The following example also returns a copy of the calling geography instance:

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
DECLARE @distance float = 1e-20;  
SELECT @g.BufferWithCurves(@distance).ToString();

Е.F. Вызов функции BufferWithCurves() со значением параметра > 0Calling BufferWithCurves() with a parameter value > 0

В следующем примере возвращается экземпляр CurvePolygon:The following example returns a CurvePolygon instance:

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(2).ToString();

Ж.G. Передача допустимого строкового параметраPassing a valid string parameter

В следующем примере возвращается тот же экземпляр CurvePolygon, который упоминался ранее, но методу передается строковый параметр:The following example returns the same CurvePolygon instance as mentioned earlier, but a string parameter is passed to the method:

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves('2').ToString();

З.H. Передача недопустимого строкового параметраPassing an invalid string parameter

В следующем примере возникнет ошибка:The following example will throw an error:

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)'  
SELECT @g.BufferWithCurves('a').ToString();

Обратите внимание на то, что в предыдущих двух примерах передавался строковый литерал методу BufferWithCurves().Note that the previous two examples passed a string literal to the BufferWithCurves() method. Первый пример будет работать, поскольку строковый литерал может быть преобразован в числовое значение.The first example works because the string literal can be converted to a numeric value. Но во втором примере возникнет исключение ArgumentException.However, the second example throws an ArgumentException.

См. такжеSee Also

Расширенные методы в экземплярах Geography Extended Methods on Geography Instances
BufferWithCurves (тип данных geometry)BufferWithCurves (geometry Data Type)