次の方法で共有


STIntersection (geography データ型)

geography インスタンスが別の geography インスタンスと交差する地点を表すオブジェクトを返します。

構文

.STIntersection ( other_geography )

引数

  • other_geography
    STIntersection() を呼び出したインスタンスと比較される、別の geography インスタンスです。

戻り値の型

SQL Server の戻り値の型: geography

CLR の戻り値の型: SqlGeography

説明

2 つの geography インスタンスが交差する地点が返されます。

2 つの geography インスタンスの SRID (spatial reference ID) が一致しない場合、STIntersection() は常に NULL を返します。

SQL Server では、半球より大きい空間インスタンスをサポートしています。SQL Server では、サーバー上で返される結果セットに FullGlobe インスタンスが含まれる場合があります。

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

使用例

A. Polygon と LineString が交差する地点を計算する

STIntersection() を使用して、Polygon と LineString が交差する地点を計算する例を次に示します。

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('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STIntersection(@h).ToString();

B. Polygon と CurvePolygon が交差する地点を計算する

次の例は、円弧が含まれたインスタンスを返します。

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('CURVEPOLYGON(CIRCULARSTRING(-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);
SELECT @g.STIntersection(@h).ToString();

C. 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.STIntersection('FULLGLOBE').ToString();

関連項目

その他の技術情報

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