次の方法で共有


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();

参照

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