Поделиться через


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

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает приближение из многоугольников для экземпляра geography, содержащего сегменты дуги.

Синтаксис

  
.CurveToLineWithTolerance( tolerance, relative )  

Примечание.

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

Аргументы

tolerance
Выражение типа double, которое определяет максимальную ошибку между исходным сегментом дуги и его линейной аппроксимацией.

relative
Представляет собой выражение типа bool, указывающее, следует ли использовать относительный максимум для отклонения. Если относительный параметр принимает значение false (0), для абсолютного максимума устанавливается значение, равное возможному отклонению линейной аппроксимации. Если относительный параметр принимает значение true, то вычисляется погрешность, равная произведению параметра tolerance на диаметр ограничивающего прямоугольника для пространственного объекта.

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

Тип возвращаемого значения SQL Server: geography

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

Исключения

Если установить погрешность <= 0, возникнет исключение ArgumentOutOfRange.

Замечания

Этот метод позволяет указывать допустимое количество ошибок для результирующего объекта LineString.

Метод CurveToLineWithTolerance вернет экземпляр LineString для экземпляра CircularString или CompoundCurve и экземпляр Polygon для экземпляра CurvePolygon.

Примеры

А. Использование различных значений погрешности в экземпляре CircularString

В следующем примере показано, каким образом задание погрешности влияет на экземпляр LineString, возвращаемый из экземпляра CircularString:

DECLARE @g geography;  
SET @g = geography::Parse('CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)');  
SELECT @g.CurveToLineWithTolerance(0.1,0).STNumPoints(), @g.CurveToLineWithTolerance(0.01, 0).STNumPoints();

B. Использование метода в экземпляре MultiLineString, содержащем один элемент LineString

Следующий пример показывает, что возвращается из экземпляра MultiLineString, который содержит только один экземпляр LineString:

DECLARE @g geography;  
SET @g = geography::Parse('MULTILINESTRING((-122.358 47.653, -122.348 47.649))');  
SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();

C. Использование метода в экземпляре MultiLineString, содержащем несколько элементов LineString

Следующий пример показывает, что возвращается из экземпляра MultiLineString, который содержит более одного экземпляра LineString:

DECLARE @g geography;  
SET @g = geography::Parse('MULTILINESTRING((-122.358 47.653, -122.348 47.649),(-123.358 47.653, -123.348 47.649))');  
SELECT @g.CurveToLineWithTolerance(0.1,0).ToString();

D. Установка параметра relative в значение true для вызова экземпляра CurvePolygon

В следующем примере используется экземпляр CurvePolygon для вызова CurveToLineWithTolerance() с параметром relative, имеющим значение true:

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

См. также

Расширенные методы в экземплярах Geography