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


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

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

Синтаксис

.CurveToLineWithTolerance( tolerance, relative )

Аргументы

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

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

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

Возвращаемый тип SQL Server: geography

Возвращаемый тип CLR: SqlGeography

Исключения

При задании tolerance <= 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();

Б.Использование метода в экземпляре 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();

В.Использование метода в экземпляре 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();

Г.Установка параметра 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();

См. также

Другие ресурсы

Расширенные методы в экземплярах географических объектов