ST_EnvIntersects

注注:

仅适用于 Oracle 的 ST_Geometry

定义

如果两个 ST_Geometries 的包络矩形相交,则 ST_EnvIntersects 返回 1 (true);否则,返回 0 (false)。

语法

sde.st_envintersects (g1 sde.st_geometry, g2 sde.st_geometry)
sde.st_envintersects (g1 sde.st_geometry, minx number, miny number, maxx number, maxy number)

返回类型

整型(布尔型)

示例

本示例搜索了其包络矩形与所定义的面相交的宗地。

CREATE TABLE sample_geoms (id integer, geometry sde.st_geometry);

INSERT INTO SAMPLE_GEOMS VALUES (
1,
sde.st_geometry ('linestring (10 10, 50 50)', 0)
);

INSERT INTO SAMPLE_GEOMS VALUES (
2,
sde.st_geometry ('linestring (10 20, 50 60)', 0)
);

此 SELECT 语句对两个几何的包络矩形以及几何自身进行了比较,以查看要素或包络矩形是否相交。

SELECT a.id, b.id, sde.st_intersects (a.geometry, b.geometry) Intersects, sde.st_envintersects (a.geometry, b.geometry) Envelope_Intersects
FROM SAMPLE_GEOMS a, SAMPLE_GEOMS b
WHERE a.id = 1
AND b.id=2; 

ID      ID      INTERSECTS   ENVELOPE_INTERSECTS

1       2       0            1

还可以指定一个包络矩形来检测哪些要素(如果存在)落入在通过 SELECT 语句的 WHERE 子句进行传递的包络矩形内部。

SELECT id
FROM SAMPLE_GEOMS
WHERE sde.st_envintersects(geometry, 5, 5, 60, 65) = 1;

ID 

1
2
9/15/2013