ST_Overlaps — ジオメトリが共有空間を持ち,同じ次元で,かつ完全に一方に含まれていない場合に,TRUEを返します.
boolean ST_Overlaps(
geometry A, geometry B)
;
ジオメトリが「空間的にオーバラップ」する場合に,TRUEを返します.ジオメトリがインタセクトして,かつ一方が他方を完全には含まない場合です.
GEOSモジュールで実現しています.
![]() | |
ジオメトリコレクションを引数として呼ばないで下さい. |
この関数は,ジオメトリ上で使用可能なインデクスを使うバウンディングボックス比較を自動的に取り込みます.インデクスの使用を避けるには,_ST_Overlapsn関数を使います.
ご注意: これは論理値を返して整数を返さないのが「許される」版です.
このメソッドは OpenGIS Simple Features Implementation Specification for SQL 1.1.を実装するものです. s2.1.1.2 // s2.1.13.3
このメソッドはSQL/MM仕様の実装です. SQL-MM 3: 5.1.32
--線上にある点は線に含まれていて,低い次元ですので,線とオーバラップもクロスもしません. SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b, ST_Intersects(a, b) As a_intersects_b, ST_Contains(b,a) As b_contains_a FROM (SELECT ST_GeomFromText('POINT(1 0.5)') As a, ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)') As b) As foo a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a ------------+-------------+----------------+-------------- f | f | t | t --線は部分的に円に含まれますが,完全にはインタセクトとクロスを満たしませんが, --異なる次元のためオーバラップします. SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b, ST_Intersects(a, b) As a_intersects_b, ST_Contains(a,b) As a_contains_b FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3) As a, ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)') As b) As foo; a_overlap_b | a_crosses_b | a_intersects_b | a_contains_b -------------+-------------+----------------+-------------- f | t | t | f -- 円にインタセクトした,二次元の曲がったホットドッグ(または,ふくれたラインストリング)です. -- 完全には円に含まれず,同じ次元ですのでオーバラップします. -- インタセクションの次元が最大次元と同じ二次元ですから,クロスしません. SELECT ST_Overlaps(a,b) As a_overlap_b, ST_Crosses(a,b) As a_crosses_b, ST_Intersects(a, b) As a_intersects_b, ST_Contains(b,a) As b_contains_a, ST_Dimension(a) As dim_a, ST_Dimension(b) as dim_b, ST_Dimension(ST_Intersection(a,b)) As dima_intersection_b FROM (SELECT ST_Buffer(ST_GeomFromText('POINT(1 0.5)'), 3) As a, ST_Buffer(ST_GeomFromText('LINESTRING(1 0, 1 1, 3 5)'),0.5) As b) As foo; a_overlap_b | a_crosses_b | a_intersects_b | b_contains_a | dim_a | dim_b | dima_intersection_b -------------+-------------+----------------+--------------+-------+-------+--------------------- t | f | t | f | 2 | 2 | 2