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

Применяется к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure sql analytics в хранилище Microsoft Fabricв Microsoft Fabric

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

Синтаксис

  
.STCurveToLine ( )  

Примечание.

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

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

Тип возвращаемых данных 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 для расчета аппроксимации из многоугольников. Любое значение координаты z, представленное в вызываемом экземпляре 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();

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

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

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