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