ST_CONTAINSPROPERLY
📄字数 1.3K
👁️阅读量 加载中...
功能描述
如果 B 的每个点都位于 A 的内部(或者等效地,B 的任何点都不位于 A 的边界或外部),则返回 TRUE。
语法格式
sql
BOOLEAN ST_CONTAINSPROPERLY( GEOMETRY geomA , GEOMETRY geomB );参数说明
- geomA:第一个目标 GEOMETRY 对象。
- geomB:第二个目标 GEOMETRY 对象。
函数返回类型
BOOLEAN 类型
使用说明
- 数学术语:
ST_CONTAINSPROPERLY(A, B) ⇔ Int(A) ⋂ B = B。 - 如果两个几何图形的 DE-9IM 交集矩阵匹配
[T**FF*FF*],则 A 正确包含 B。 - 此功能自动包括利用几何上可用的任何空间索引的边界框比较。
- 此函数是由 GEOS 模块执行的。
- 此函数支持 GEOMETRYCOLLECTION。
示例
一个圆在圆内部时:
sql
SQL> SELECT ST_CONTAINSPROPERLY(smallc, bigc) As smallcontainspropbig,
ST_CONTAINSPROPERLY(bigc,smallc) As bigcontainspropsmall,
ST_CONTAINSPROPERLY(bigc, ST_UNION(smallc, bigc)) as bigcontainspropunion,
ST_EQUALS(bigc, ST_UNION(smallc, bigc)) as bigisunion,
ST_COVERS(bigc, ST_EXTERIORRING(bigc)) As bigcoversexterior,
ST_CONTAINSPROPERLY(bigc, ST_EXTERIORRING(bigc)) As bigcontainsexterior
FROM (SELECT ST_BUFFER(ST_GEOMFROMTEXT('POINT(1 2)'), 10) As smallc,
ST_BUFFER(ST_GEOMFROMTEXT('POINT(1 2)'), 20) As bigc) As foo;
+----------------------+----------------------+----------------------+------------+-------------------+---------------------+
| SMALLCONTAINSPROPBIG | BIGCONTAINSPROPSMALL | BIGCONTAINSPROPUNION | BIGISUNION | BIGCOVERSEXTERIOR | BIGCONTAINSEXTERIOR |
+----------------------+----------------------+----------------------+------------+-------------------+---------------------+
| F | T | F | T | T | F |
+----------------------+----------------------+----------------------+------------+-------------------+---------------------+
(1 row)ST_CONTAINS 和 ST_CONTAINSPROPERLY 示例:
sql
SQL> SELECT
ST_GEOMETRYTYPE(geomA) As geomtype,
ST_CONTAINS(geomA,geomA) AS acontainsa,
ST_CONTAINSPROPERLY(geomA, geomA) AS acontainspropa,
ST_CONTAINS(geomA, ST_Boundary(geomA)) As acontainsba,
ST_CONTAINSPROPERLY(geomA, ST_Boundary(geomA)) As acontainspropba
FROM (
SELECT ST_BUFFER(ST_Point(1,1), 5,1) union all
SELECT ST_MAKELINE(ST_POINT(1,1), ST_POINT(-1,-1)) union all
SELECT ST_POINT(1,1)
) As foo(geomA);
+---------------+------------+----------------+-------------+-----------------+
| GEOMTYPE | ACONTAINSA | ACONTAINSPROPA | ACONTAINSBA | ACONTAINSPROPBA |
+---------------+------------+----------------+-------------+-----------------+
| ST_Polygon | T | F | F | F |
| ST_LineString | T | F | F | F |
| ST_Point | T | T | F | F |
+---------------+------------+----------------+-------------+-----------------+
(3 rows)