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


STCurveToLine (тип данных geometry)

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

Синтаксис

.STCurveToLine ( )

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

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

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

Замечания

Возвращает пустой экземпляр GeometryCollection для пустых переменных экземпляра geometry и возвращает значение NULL для неинициализированных переменных geometry.

Приближение из многоугольников, возвращаемое методом, зависит от экземпляра geometry, с помощью которого был вызван метод:

  • Возвращает экземпляр LineString для экземпляра CircularString или CompoundCurve.

  • Возвращает экземпляр Polygon для экземпляра CurvePolygon.

  • Возвращает копию экземпляра geometry, если экземпляр не является экземпляром CircularString, CompoundCurve или CurvePolygon. Например, метод STCurveToLine возвращает экземпляр Point для экземпляра geometry, который не является экземпляром Point.

В отличие от спецификации SQL/MM, метод STCurveToLine не использует значения z-coordinate при вычислении приближения из многоугольников. Метод пропускает все значения z-coordinate, указанные в вызывающем экземпляре geometry.

Примеры

А.Использование неинициализированной переменной геометрии и пустого экземпляра

В следующем примере первая инструкция SELECT вызывает метод STCurveToLine с помощью неинициализированного экземпляра geometry, а вторая инструкция SELECT использует пустой экземпляр geometry. Таким образом, метод возвращает значение NULL для первой инструкции и коллекцию GeometryCollection для второй инструкции.

DECLARE @g geometry;

SET @g = @g.STCurveToLine();

SELECT @g.STGeometryType();

SET @g = geometry::Parse('LINESTRING EMPTY');

SELECT @g.STGeometryType();

Б.Использование экземпляра объекта LineString

Инструкция SELECT в следующем примере использует экземпляр LineString для вызова метода STCurveToLine. Таким образом, этот метод возвращает экземпляр LineString.

DECLARE @g geometry;

SET @g = geometry::Parse('LINESTRING(1 3, 5 5, 4 3, 1 3)');

SET @g = @g.STCurveToLine();

SELECT @g.STGeometryType();

В.Использование экземпляра объекта CircularString

Первая инструкция SELECT в следующем примере использует экземпляр CircularString для вызова метода STCurveToLine. Таким образом, этот метод возвращает экземпляр LineString. Эта инструкция SELECT также сравнивает длину двух экземпляров, которые приблизительно одинаковы. Наконец, вторая инструкция SELECT возвращает число точек для каждого экземпляра. Она возвращает только 5 точек для экземпляра CircularString, но 65 точек для экземпляра LineString.

DECLARE @g1 geometry, @g2 geometry;

SET @g1 = geometry::Parse('CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0)');

SET @g2 = @g1.STCurveToLine();

SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type], @g1.STLength() AS [G1 Perimeter], @g2.STLength() AS [G2 Perimeter], @g2.ToString() AS [G2 Def];

SELECT @g1.STNumPoints(), @g2.STNumPoints();

Г.Использование экземпляра объекта CurvePolygon

Инструкция SELECT в следующем примере использует экземпляр CurvePolygon для вызова метода STCurveToLine. Таким образом, этот метод возвращает экземпляр Polygon.

DECLARE @g1 geometry, @g2 geometry;

SET @g1 = geometry::Parse('CURVEPOLYGON(CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0))');

SET @g2 = @g1.STCurveToLine();

SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type];

См. также

Справочник

STLength (тип данных geometry)

STNumPoints (тип данных geometry)

STGeometryType (тип данных geometry)

Основные понятия

Основные сведения о типах пространственных данных