STNumPoints (geography データ型)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Microsoft Fabric SQL Database
geography インスタンス内の各図形に含まれる地点の合計数を返します。
構文
.STNumPoints ( )
戻り値の型
SQL Server の戻り値の型: int
CLR の戻り値の型: SqlInt32
解説
このメソッドは、geography インスタンスの記述に含まれている地点をカウントします。 重複する地点はカウントされます。ただし、セグメント間の接続点は 1 つとしてカウントされます。 対象となるインスタンスがコレクションの場合、このメソッドは、コレクション内の地点の合計数を返します。
例
A. LineString 内の地点の合計数を取得する
LineString
インスタンスを作成し、STNumPoints()
を使用して、インスタンスの記述で使用されている地点の数を確認する例を次に示します。
DECLARE @g geography;
SET @g = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STNumPoints();
B. GeometryCollection 内の地点の合計数を取得する
次の例では、GeometryCollection
内のすべての要素の地点の合計数を返します。
DECLARE @g geography = 'GEOMETRYCOLLECTION(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)
,CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)))';
SELECT @g.STNumPoints();
C. CompoundCurve 内の地点の数を返す
次の例では、CompoundCurve インスタンスに含まれる地点の数を返します。 STNumPoints() はセグメント間の接続点を 1 つとしてカウントするため、このクエリは 6 ではなく 5 を返します。
DECLARE @g geography = 'COMPOUNDCURVE(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658),( -122.348 47.658, -121.56 48.12, -122.358 47.653))'
SELECT @g.STNumPoints();