名前

ST_Intersects — ジオメトリ/ジオグラフィが「2次元空間で空間的にインタセクトする」(空間に共有部分がある)場合には、TRUEを返します。そうでない(非接続)場合はFALSEを返します。ジオグラフィについては、許容量は0.00001メートルです(どの閉じた点でもインタセクトを考慮されます)。

概要

boolean ST_Intersects( geometry geomA , geometry geomB );

boolean ST_Intersects( geography geogA , geography geogB );

説明

オーバラップ、接触、Withinは全て、ジオメトリがインタセクトしていることを意味しています。これらがTRUEを返す場合は、空間的にインタセクトしています。非接続は、空間インタセクトについてFALSEとなります。

[重要]

ジオメトリ版では、GEOMETRYCOLLECTIONを引数にして呼ばないでください。ジオグラフィ版では、Distanceの実装にかぶせられる薄いラッパですので、GEOMETRYCOLLECTIONをサポートしています。

ジオメトリについては、GEOSモジュールで実現しています。ジオグラフィについてはネイティブです。

初出: 1.5 ジオメトリが導入されました。

[注記]

この関数の呼び出しによって、ジオメトリで使用可能なインデクスを使用したバウンディングボックスの比較が自動的に行われます。

[注記]

ジオグラフィでは、この関数は0.00001メートルの距離許容を持ち、回転楕円体計算よりむしろ球面を使います。

[注記]

ご注意: これは論理値を返して整数を返さないのが「許される」版です。

このメソッドはOpenGIS Simple Features Implementation Specification for SQL 1.1.の実装です s2.1.1.2 //s2.1.13.3 - ST_Intersects(g1, g2 ) --> Not (ST_Disjoint(g1, g2 ))

このメソッドはSQL/MM仕様の実装です。 SQL-MM 3: 5.1.27

ジオメトリの例

SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 2 0, 0 2 )'::geometry);
 st_intersects
---------------
 f
(1 row)
SELECT ST_Intersects('POINT(0 0)'::geometry, 'LINESTRING ( 0 0, 0 2 )'::geometry);
 st_intersects
---------------
 t
(1 row)
		

ジオグラフィの例

SELECT ST_Intersects(
		ST_GeographyFromText('SRID=4326;LINESTRING(-43.23456 72.4567,-43.23456 72.4568)'),
		ST_GeographyFromText('SRID=4326;POINT(-43.23456 72.4567772)')
		);

 st_intersects
---------------
t

関連情報

ST_3DIntersects, ST_Disjoint