次の方法で共有


STCurveN (geometry データ型)

LineString、CircularString、CompoundCurve、または MultiLineString の geometry インスタンスから指定された曲線を返します。

構文

.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 インスタンスの 2 番目の曲線が返されます。

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. 1 つの CircularString インスタンスを持つ CompoundCurve インスタンスに対して STCurveN() を使用する

次の例では、CompoundCurve インスタンスの 2 番目の曲線が返されます。

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. 3 つの CircularString インスタンスを持つ CompoundCurve インスタンスに対して STCurveN() を使用する

次の例では、3 つの異なる CircularString インスタンスを前の例と同じ曲線シーケンスに結合した CompoundCurve インスタンスを使用します。

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)

前の 3 つの例の結果が同じであることに注意してください。 同じ曲線シーケンスの入力にどの 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 データ型)

その他の技術情報

geometry インスタンスの OGC メソッド