如果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)