次の方法で共有


STDifference (geometry データ型)

別の geometry インスタンス内に含まれていない、任意の geometry インスタンスの地点のセットを表すオブジェクトを返します。

構文

.STDifference ( other_geometry )

引数

  • other_geometry
    STDifference() を呼び出したインスタンスからどの地点を削除するかを示す、別の geometry インスタンスです。

戻り値の型

SQL Server の戻り値の型 : geometry

CLR の戻り値の型 : SqlGeometry

説明

2 つの geometry インスタンスの SRID (spatial reference ID) が一致しない場合、このメソッドは常に NULL を返します。 結果に円弧が含まれるのは、入力インスタンスに円弧が含まれる場合のみです。

使用例

A. 2 つの Polygon インスタンス間の差異を計算する

STDifference() を使用して 2 つの多角形の差異を計算する例を次に示します。

DECLARE @g geometry;
DECLARE @h geometry;
SET @g = geometry::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 0);
SET @h = geometry::STGeomFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);
SELECT @g.STDifference(@h).ToString();

B. CurvePolygon インスタンスに対して STDifference() を呼び出す

CurvePolygon インスタンスに対して STDifference() を使用する例を次に示します。

DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';

DECLARE @h geometry = 'POLYGON ((1 -1, 5 -1, 5 3, 1 3, 1 -1))';

-- Note the different results returned by the two SELECT statements

SELECT @h.STDifference(@g).ToString(), @g.STDifference(@h).ToString();

関連項目

その他の技術情報

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