如果两个输入的Geometry对象有部分交集但互相不包含,则该函数返回True。
语法
boolean ST_Crosses(geometry g1 , geometry g2);
参数
参数名称 | 描述 |
---|---|
g1 | 第一个Geometry对象。 |
g2 | 第二个Geometry对象。 |
描述
- 两个Geometry对象内部的交集不得为空集,相交集合对象的维度必须比两个输入对象的最大维度值要小。
- 两个Geometry对象的交集不得等于任何一个源对象。否则,它返回False。
- 两个Geometry对象的DE-9IM
- T*T******(对于Point/Line,Point/Area,和Line/Area的情况)
- T*****T**(对于Line/Point,Area/Point,和Area/Line的情况)
- 0********(对于Line/Line的情况)
- 该函数不支持GeometryCollection类型对象作为输入参数。
- 该函数会自动生成一个bounding box用于利用Geometry对象上的索引。如果不想使用索引,请使用函数_ST_Crosses。
示例
- 默认调用:
SELECT ST_Crosses('LINESTRING(0 0,3 3)'::geometry,'LINESTRING(0 1,1 0)'::geometry); st_crosses ------------ t (1 row)
- 有重叠:
SELECT ST_Crosses('LINESTRING(0 0,3 3)'::geometry,'LINESTRING(0 0,1 1)'::geometry); st_crosses ------------ f (1 row)
- 重叠区域维度与两个输入对象的最大维度值一致:
SELECT ST_Crosses('LINESTRING(0 0,3 3)'::geometry,'LINESTRING(1 1,4 4)'::geometry); st_crosses ------------ f (1 row)