ST_Crosses — 如果两个几何图形有一些(但不是全部)共有的内部点,则返回True。
boolean ST_Crosses(
geometry g1, geometry g2)
;
ST_Crosses
获取两个几何对象并返回 true
如果它们的交叉点在空间上是交叉的,也就是说,几何图形有一些但不是所有的内部点是共同的。几何图形内部的交点不能是空集,并且其维度必须小于两个输入几何图形的最大尺寸。此外,两个几何图形的交点不能等于任何一个源几何图形。否则,它将返回 false
。
用数学术语来说,这是:
如果几何的DE-9IM交阵满足以下条件,则它们相交:
T*T* (适用于点/线、点/面和线/面情况)
T*T** (适用于线/点、面/点和面/线情况)
0* (适用于线路/线路情况)
对于点/点和面/面的情况,此谓词返回 false
。
OpenGIS简单要素规范仅为点/线、点/面、线/线和线/面情况定义了此谓词。JTS/GEOS将该定义扩展到适用于线/点、面/点和面/线的情况。这使关系成为对称的。
![]() | |
This function automatically includes a bounding box comparison that makes use of any spatial indexes that are available on the geometries. |
![]() | |
增强:已启用3.0.0支持 |
This method implements the OGC Simple Features
Implementation Specification for SQL 1.1. s2.1.13.3
This method implements the SQL/MM specification. SQL-MM 3:5.1.29
以下所有情况都会返回 TRUE
。
![]()
| ![]()
|
![]()
| ![]()
|
考虑用户有两个表的情况:一个道路表和一个高速公路表。
CREATE TABLE roads ( id serial NOT NULL, geom geometry, CONSTRAINT roads_pkey PRIMARY KEY (road_id) );
|
CREATE TABLE highways ( id serial NOT NULL, the_gem geometry, CONSTRAINT roads_pkey PRIMARY KEY (road_id) );
|
要确定穿过高速公路的道路列表,请使用类似于以下内容的查询:
SELECT roads.id FROM roads, highways WHERE ST_Crosses(roads.geom, highways.geom);