Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
Azure 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)