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


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

Применимо к:SQL ServerAzure SQL База данныхAzure SQL Управляемый экземплярSQL База данных в Microsoft Fabric

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

Syntax

  
.STCurveToLine ( )  

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

Тип возвращаемых данных SQL Server: geometry

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

Remarks

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

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

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

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

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

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

Examples

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

В приведенном ниже примере первая инструкция SELECT вызывает метод с помощью неинициализированного экземпляра STCurveToLine, а вторая инструкция 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)