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 除外,它测试几何形状不相交。
此功能自动包括利用几何上可用的任何空间索引的边界框比较。 |
更改:3.0.0删除了 SFCGAL 版本并添加了对 2D TINS 的本机支持。
增强:2.5.0 支持 GEOMETRYCOLLECTION。
增强:2.3.0 PIP 短路(快速判断仅限于多边形和点)已得到增强,以支持具有更少点的多点。 以前的版本仅支持面和点组合。
由 GEOS 模块(用于几何)执行,地理是原生的
可用性:1.5 引入了对地理的支持。
对于地理来说,该函数的距离容差约为 0.00001 米,并且使用球体而不是椭球体计算。 |
注意:这是返回布尔值而不是整数的“允许”版本。 |
此方法实现了 SQL 1.1 的 OGC 简单功能规范。 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