STCurveN (geography データ型)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

LineStringCircularString、または CompoundCurve である geography インスタンスから指定された曲線を返します。

構文

  
.STCurveN( n )  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

n
1 から geography インスタンス内の曲線の数までの int 式。

戻り値の型

SQL Server 戻り値の型: geography

CLR の戻り値の型: SqlGeography

例外

n < 1 のとき、ArgumentOutOfRangeException がスローされます。

解説

次の条件が発生するとき、NULL が返されます。

  • geography インスタンスが宣言されるが、インスタンス化されない

  • geography インスタンスが空である

  • n が geography インスタンスの曲線数を超える (「STNumCurves (geography データ型)」参照)

  • geography インスタンスのディメンションが等しくない (「STDimension (geography データ型)」参照)

A. CircularString に対して STCurveN() を使用する

次の例では、CircularString インスタンスで 2 番目の曲線を返します。

 DECLARE @g geography = 'CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
 SELECT @g.STCurveN(2).ToString();

この例では、以下が返されます。

CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)

B. CompoundCurve に対して STCurveN() を使用する

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

 DECLARE @g geography = 'COMPOUNDCURVE(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
 SELECT @g.STCurveN(2).ToString();

この例では、以下が返されます。

CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)

C. 3 つの CircularStrings を含む CompoundCurve に対して STCurveN() を使用する

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

 DECLARE @g geography = 'COMPOUNDCURVE (CIRCULARSTRING (-122.358 47.653, -122.348 47.649, -122.348 47.658), CIRCULARSTRING(-122.348 47.658, -122.358 47.658, -122.358 47.653))';  
 SELECT @g.STCurveN(2).ToString();

この例では、以下が返されます。

CIRCULARSTRING (-122.348 47.658, -122.358 47.658, -122.358 47.653)

STCurveN() では、使用する Well-Known Text (WKT) 形式に関係なく、同じ結果が返されます。

D. STCurve() を呼び出す前に有効性をテストする

次の例では、STCurveN() メソッドを呼び出す前に n が有効かどうかを確認する方法を示しています。

 DECLARE @g geography;  
 DECLARE @n int;  
 SET @n = 2;  
 SET @g = geography::Parse('LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)');  
 IF @n >= 1 AND @n <= @g.STNumCurves()  
 BEGIN  
 SELECT @g.STCurveN(@n).ToString();  
 END

参照

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