STSymDifference (geography データ型)

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

任意の geography インスタンスと別の geography インスタンスのいずれかに存在する地点すべてを表すオブジェクトを返します。つまり、両方のインスタンスに存在する地点は除外されます。

構文

  
.STSymDifference ( other_geography )  

Note

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

引数

other_geography
STSymDistance() を呼び出したインスタンスの対象となる、別の geography インスタンスです。

戻り値の型

SQL Server 戻り値の型: geography

CLR の戻り値の型: SqlGeography

解説

geography インスタンスの SRID (spatial reference ID) が一致しない場合、このメソッドは常に null を返します。

SQL Server では、半球より大きい空間インスタンスをサポートしています。 SQL Server では、サーバー上で使用可能な結果セットが FullGlobe インスタンスに拡張されています。

結果に円弧が含まれるのは、入力インスタンスに円弧が含まれる場合のみです。

A. 2 つの多角形の対称差を計算する

次の例では、STSymDifference() を使用して 2 つの Polygon インスタンスの対称差を計算します。

DECLARE @g geography;  
DECLARE @h geography;  
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);  
SET @h = geography::STGeomFromText('POLYGON((-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);  
SELECT @g.STSymDifference(@h).ToString();  

B. FullGlobe を使用して、対称差を計算する

FullGlobe を使用して、Polygon の対称差を比較する例を次に示します。

 DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
 SELECT @g.STSymDifference('FULLGLOBE').ToString();

参照

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