次の方法で共有


STCurveToLine (geometry データ型)

円弧を含む geometry インスタンスの多角形近似を返します。

構文

.STCurveToLine ( )

戻り値の型

SQL Server の戻り値の型:geometry

CLR の戻り値の型: SqlGeometry

説明

空の geometry インスタンス変数の場合は空の GeometryCollection インスタンスを返し、初期化されていない geometry 変数の場合は NULL を返します。

メソッドによって返される多角形近似は、メソッドの呼び出しに使用した geometry インスタンスによって変わります。

  • CircularString または CompoundCurve インスタンスの場合は LineString インスタンスを返します。

  • CurvePolygon インスタンスの場合は Polygon インスタンスを返します。

  • インスタンスが CircularString、CompoundCurve、または CurvePolygon インスタンスでない場合は、geometry インスタンスのコピーを返します。 たとえば、Point インスタンスである geometry インスタンスに対しては、STCurveToLine メソッドは Point インスタンスを返します。

SQL/MM 仕様とは異なり、STCurveToLine メソッドは多角形近似の計算に z-coordinate 値を使用せず、 geometry インスタンスの呼び出しに使用されるあらゆる z-coordinate 値を無視します。

使用例

A. 初期化されていないジオメトリ変数と空のインスタンスを使用する

次の例では、最初の SELECT ステートメントで初期化されていない geometry インスタンスを使用して STCurveToLine メソッドを呼び出し、2 つ目の SELECT ステートメントで空の geometry インスタンスを使用します。 したがって、最初のステートメントには NULL が返され、2 つ目のステートメントには GeometryCollection コレクションが返されます。

DECLARE @g geometry;

SET @g = @g.STCurveToLine();

SELECT @g.STGeometryType();

SET @g = geometry::Parse('LINESTRING EMPTY');

SELECT @g.STGeometryType();

B. LineString インスタンスを使用する

次の例の SELECT ステートメントでは、LineString インスタンスを使用して STCurveToLine メソッドを呼び出します。 したがって、LineString インスタンスが返されます。

DECLARE @g geometry;

SET @g = geometry::Parse('LINESTRING(1 3, 5 5, 4 3, 1 3)');

SET @g = @g.STCurveToLine();

SELECT @g.STGeometryType();

C. CircularString インスタンスを使用する

次の例の最初の SELECT ステートメントでは、CircularString インスタンスを使用して STCurveToLine メソッドを呼び出します。 したがって、LineString インスタンスが返されます。 この SELECT ステートメントでは、ほとんど同じ 2 つのインスタンスの長さの比較も行います。 さらに、2 つ目の SELECT ステートメントは、各インスタンスのポイントの数を返します。 CircularString インスタンスについては 5 個だけポイントが返され、LineString インスタンスについては 65 個のポイントが返されます。

DECLARE @g1 geometry, @g2 geometry;

SET @g1 = geometry::Parse('CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0)');

SET @g2 = @g1.STCurveToLine();

SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type], @g1.STLength() AS [G1 Perimeter], @g2.STLength() AS [G2 Perimeter], @g2.ToString() AS [G2 Def];

SELECT @g1.STNumPoints(), @g2.STNumPoints();

D. CurvePolygon インスタンスを使用する

次の例の SELECT ステートメントでは、CurvePolygon インスタンスを使用して STCurveToLine メソッドを呼び出します。 したがって、Polygon インスタンスが返されます。

DECLARE @g1 geometry, @g2 geometry;

SET @g1 = geometry::Parse('CURVEPOLYGON(CIRCULARSTRING(10 0, 0 10, -10 0, 0 -10, 10 0))');

SET @g2 = @g1.STCurveToLine();

SELECT @g1.STGeometryType() AS [G1 Type], @g2.STGeometryType() AS [G2 Type];

関連項目

参照

STLength (geometry データ型)

STNumPoints (geometry データ型)

STGeometryType (geometry データ型)

概念

空間データ型の概要