暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

STCurveN(geometry 数据类型)

Ty3306 2024-06-23
62

STCurveN(geometry 数据类型)

  •  

返回从 geometry 实例中指定的曲线,该实例的数据类型为 LineString、CircularString、CompoundCurve 或 MultiLineString

语法

  
.STCurveN ( curve_index )  
复制

 备注

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。

参数

curve_index
一个 int 表达式,其值介于 1 和 geometry 实例中的曲线数之间。

返回类型

SQL Server 返回类型:geometry

CLR 返回类型:SqlGeometry

例外

如果 curve_index < 1,则引发 ArgumentOutOfRangeException

备注

如果出现以下任何情况,则会返回 NULL

  • 声明 geometry 实例,但未将其实例化

  • geometry 实例为空

  • curve_index 超过 geometry 实例中的曲线数

  • geometry 实例为 PointMultiPointPolygonCurvePolygon 或 MultiPolygon

示例

A. 在 CircularString 实例上使用 STCurveN()

以下示例返回 CircularString 实例中的第二条曲线:

SQL
 DECLARE @g geometry = 'CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)';  
 SELECT @g.STCurveN(2).ToString();
复制

本主题前面的示例返回:

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

B. 在具有一个 CircularString 实例的 CompoundCurve 实例上使用 STCurveN()

以下示例返回 CompoundCurve 实例中的第二条曲线:

SQL
 DECLARE @g geometry = 'COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0))';  
 SELECT @g.STCurveN(2).ToString();
复制

本主题前面的示例返回:

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

C. 在具有三个 CircularString 实例的 CompoundCurve 实例上使用 STCurveN()

以下示例使用 CompoundCurve 实例,该实例将三个单独的 CircularString 实例合并为与上一示例相同的曲线序列:

SQL
 DECLARE @g geometry = 'COMPOUNDCURVE (CIRCULARSTRING (0 0, 1 2.1082, 3 6.3246), CIRCULARSTRING(3 6.3246, 0 7, -3 6.3246), CIRCULARSTRING(-3 6.3246, -1 2.1082, 0 0))';  
 SELECT @g.STCurveN(2).ToString();
复制

本主题前面的示例返回:

CIRCULARSTRING (3 6.3246, 0 7, -3 6.3246)

请注意,前面的三个示例的结果是相同的。 无论使用哪种 WKT(熟知文本)格式输入相同的曲线序列,在使用 STCurveN() 实例时,CompoundCurve 返回的结果都是相同的。

D. 在调用 STCurveN() 之前验证参数

以下示例说明如何在调用 STCurveN() 方法之前确保 @n 有效:

SQL
 DECLARE @g geometry;  
 DECLARE @n int;  
 SET @n = 3;  
 SET @g = geometry::Parse('CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)');  
 IF @n >= 1 AND @n <= @g.STNumCurves()  
 BEGIN  
 SELECT @g.STCurveN(@n).ToString();  
 END
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论