共用方式為


STCurveN (geometry 資料類型)

從 geometry 執行個體傳回指定的曲線,這個執行個體是 LineString、CircularString、CompoundCurve 或 MultiLineString。

語法

.STCurveN ( curve_index )

引數

  • curve_index
    這是介於 1 和 geometry 執行個體中的曲線數目之間的 int 運算式。

傳回類型

SQL Server 傳回類型:geometry

CLR 傳回類型:SqlGeometry

例外狀況

如果 curve_index < 1,則會擲回 ArgumentOutOfRangeException。

備註

當發生下列任何狀況時,都會傳回 NULL:

  • geometry 執行個體已宣告,但未具現化

  • geometry 執行個體是空白

  • curve_index 超過 geometry 執行個體中的曲線數目

  • geometry 執行個體是 Point、MultiPoint、Polygon、CurvePolygon 或 MultiPolygon

範例

A.在 CircularString 執行個體上使用 STCurveN()

下列範例會傳回 CircularString 執行個體中的第二個曲線:

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 執行個體中的第二個曲線:

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 執行個體組合成與前一個範例相同的曲線順序:

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 (Well-known Text) 格式來輸入相同的曲線順序,使用 CompoundCurve 執行個體時,STCurveN() 所傳回的結果都相同。

D.呼叫 STCurveN() 之前,先驗證參數

下列範例示範如何在呼叫 STCurveN()方法之前確認 @n 是有效:

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

請參閱

參考

STNumCurves (geometry 資料類型)

其他資源

幾何例項上的 OGC 方法