ST_Crosses
确定一个 GEOMETRY 对象是否与另一个 GEOMETRY 对象在空间上交叉。如果两个对象仅在边界上接触,则 ST_Crosses 将返回 FALSE。
如果以下两项均成立,则表示两个对象在空间上交叉:
-
两个对象具有部分但非全部的公共内点。
-
它们的相交结果的尺寸小于两个对象的最大尺寸。
行为类型
不可变语法
ST_Crosses( g1, g2 )
参数
g1
- 空间对象,类型为 GEOMETRY
g2
- 空间对象,类型为 GEOMETRY
返回
BOOLEAN
支持的数据类型
- 数据类型
- GEOMETRY
- Point
- 是
- Multipoint
- 是
- Linestring
- 是
- Multilinestring
- 是
- Polygon
- 是
- Multipolygon
- 是
- GeometryCollection
- 是
示例
以下示例显示了 ST_Crosses 的用法。
=> SELECT ST_Crosses(ST_GeomFromText('LINESTRING(-1 3,1 4)'),
ST_GeomFromText('LINESTRING(-1 4,1 3)'));
ST_Crosses
------------
t
(1 row)
=> SELECT ST_Crosses(ST_GeomFromText('LINESTRING(-1 1,1 2)'),
ST_GeomFromText('POLYGON((1 1,0 -1,3 -1,2 1,1 1))'));
ST_Crosses
------------
f
(1 row)
=> SELECT ST_Crosses(ST_GeomFromText('POINT(-1 4)'),
ST_GeomFromText('LINESTRING(-1 4,1 3)'));
ST_ Crosses
------------
f
(1 row)