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
7/10/2012