名稱

ST_Intersects — 測試兩個幾何圖形是否相交(它們至少有一個共同點)

概要

boolean ST_Intersects( geometry geomA , geometry geomB );

boolean ST_Intersects( geography geogA , geography geogB );

描述

如果兩個幾何圖形相交,則返回 true。 如果幾何圖形有任何共同點,則它們相交。

對於地理圖形,使用 0.00001 公尺的距離容差(因此非常接近的點被認為是相交的)。

用數學術語來說:ST_Intersects(A, B) ⇔ A ⋂ B ≠ ∅

如果幾何圖形的 DE-9IM 相交矩陣符合以下其中之一,則它們相交

  • T********

  • *T*******

  • ***T*****

  • ****T****

除了 ST_Disjoint 之外,所有其他空間關係測試都暗示空間相交,該函數測試幾何圖形是否不相交。

[Note]

此函數會自動包含邊界框比較,該比較會利用幾何圖形上可用的任何空間索引。

已變更:3.0.0 移除了 SFCGAL 版本,並新增了對 2D TIN 的原生支援。

已增強:2.5.0 支援 GEOMETRYCOLLECTION。

已增強:2.3.0 PIP 短路增強功能已擴展為支援具有少量點的 MultiPoints。 先前版本僅支援點在多邊形內。

由 GEOS 模組(用於幾何圖形)執行,地理圖形是原生的

可用性:1.5 引入了對地理圖形的支援。

[Note]

對於地理圖形,此函數的距離容差約為 0.00001 公尺,並使用球體而非橢球體計算。

[Note]

注意:這是傳回布林值而不是整數的「允許」版本。

此方法實作了 OGC 簡單功能 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

此方法支援圓弧字串和曲線。

此函數支援三角形和三角不規則網路表面 (TIN)。

幾何圖形範例

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)

-- Look up in table. Make sure table has a GiST index on geometry column for faster lookup.
SELECT id, name FROM cities WHERE ST_Intersects(geom, 'SRID=4326;POLYGON((28 53,27.707 52.293,27 52,26.293 52.293,26 53,26.293 53.707,27 54,27.707 53.707,28 53))');
 id | name
----+-------
  2 | Minsk
(1 row)

地理圖形範例

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

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

另請參閱

&&ST_3DIntersectsST_Disjoint