STCurveToLine(geometry 数据类型)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Microsoft Fabric SQL 数据库
返回包含圆弧线段的 geometry 实例的多边形近似值。
语法
.STCurveToLine ( )
返回类型
SQL Server 返回类型:geometry
CLR 返回类型:SqlGeometry
备注
为空的 geometry 实例变量返回空的 GeometryCollection 实例,为未初始化的 geometry 变量返回 NULL。
该方法返回的多边形近似值取决于用于调用该方法的 geometry 实例:
为 CircularString 或 CompoundCurve 实例返回 LineString 实例。
为 CurvePolygon 实例返回 Polygon 实例。
如果 geometry 实例不是 CircularString、CompoundCurve 或 CurvePolygon 实例,则返回该实例的副本。 例如,
STCurveToLine
方法为属于 Point 实例的 geometry 实例返回 Point 实例。
与 SQL/MM 规范不同,STCurveToLine
方法不使用 Z 坐标值来计算多边形近似值。 该方法忽略执行调用的 geometry 实例中存在的任何 Z 坐标值。
示例
A. 使用未初始化的 Geometry 变量和空实例
在以下示例中,第一个 SELECT 语句使用未初始化的 geometry 实例调用 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 语句返回每个实例的点数。 它仅为 CircularString 实例返回 5 个点,而为 LineString 实例返回 65 个点。
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 数据类型)