如果Geometry对象B完全在Geometry对象A的内部,则返回True。
语法
boolean ST_ContainsProperly(geometry geomA , geometry geomB);
参数
参数名称 | 描述 |
---|---|
geomA | 第一个Geometry对象。 |
geomB | 第二个Geometry对象。 |
描述
- 如果输入的Geometry对象B和Geometry对象A的内部相交,但不和A的边界(或外部)有接触,那么返回True。B中每个点都在A内部。
- 两个对象的DE-9IM相交矩阵符合[T**FF*FF*]。
- 该函数不支持GeometryCollection类型对象作为输入参数。
- 不要将该函数用于无效的Geometry对象,否则会得到不可预料的结果。
- 该函数会自动生成一个bounding box用于利用Geometry对象上的索引。如果不想使用索引,请使用函数_ST_ContainsProperly。
示例
对比ST_ContainsProperly和ST_Contains:
SELECT ST_Contains(g1,g2), ST_ContainsProperly(g1,g2),ST_ContainsProperly(g1,g3)
FROM (SELECT 'POLYGON((0 0,0 3,3 3,3 0,0 0))'::geometry as g1,
'POLYGON((0 0,0 1,1 1,1 0,0 0))'::geometry as g2,
'POLYGON((1 1,1 2,2 2,2 1,1 1))'::geometry as g3 ) as test;
st_contains | st_containsproperly | st_containsproperly
-------------+---------------------+---------------------
t | f | t
(1 row)