Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье
Область применения: SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
базе данных SQL в Microsoft Fabric
Возвращает приближение из многоугольников для экземпляра 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 для расчета аппроксимации из многоугольников. Любое значение координаты 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();
Инструкция 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();
Инструкция 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();
Инструкция 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)