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