ST_EnvIntersects returns 1 (TRUE) if the envelopes of two geometries intersect; otherwise, it returns 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)
This example searches for a parcel that has an envelope intersected by the defined polygon.
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)
);
This SELECT statement compares the envelopes of two geometries and the geometries themselves to see if the features or the envelopes intersect.
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
You could also specify an envelope to detect which features, if any, fall inside the envelope you pass in with the WHERE clause of the SELECT statement.
SELECT id
FROM sample_geoms
WHERE sde.st_envintersects(geometry, 5, 5, 60, 65) = 1;
ID
1
2