ST_Overlaps — ジオメトリが共有空間を持ち、同じ次元で、かつ完全には一方に含まれていない場合に、TRUEを返します。
boolean ST_Overlaps(
geometry A, geometry B)
;
ジオメトリが「空間的にオーバラップ」する場合に、TRUEを返します。ジオメトリがインタセクトして、かつ一方が他方を完全には含まない場合です。
GEOSモジュールによって実現しています。
|
この関数の呼び出しによって、ジオメトリで使用可能なインデクスを使用したバウンディングボックスの比較が自動的に行われます。インデクスの使用を避けるには_ST_Overlapsを使います。
ご注意: これは論理値を返して整数を返さないのが「許される」版です。
このメソッドは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
次に示す図全てで、ST_Overlaps
はTRUE
を返します。
-- 線上にある点は線に含まれていて、低い次元ですので、線とオーバラップもクロスもしません。 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 -- 円にインタセクトした、2次元の曲がったホットドッグ -- (または、ふくれたラインストリング)です。 -- 完全には円に含まれず、同じ次元ですのでオーバラップします。 -- インタセクションの次元が最大次元と同じ2次元ですから、クロスしません。 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