ST_EnvIntersects

ПримечаниеПримечание:

ST_Geometry только для Oracle

Определение

ST_EnvIntersects возвращает значение 1 (true), если конверты двух объектов ST_Geometry пересекаются; в противном случае, функция возвращает 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

Вы также можете определить конверт, чтобы узнать, какие объекты (если такие есть) попадают в конверт, выбранный с помощью условия WHERE в выражении SELECT.

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

ID 

1
2
9/11/2013