Definition
ST_EnvIntersects gibt 1 (true) zurück, wenn sich die Envelopes von zwei Geometrien schneiden; andernfalls wird 0 (false) zurückgegeben.
Syntax
Oracle
sde.st_envintersects (geometry1 sde.st_geometry, geometry2 sde.st_geometry) sde.st_envintersects (geometry1 sde.st_geometry, minx number, miny number, maxx number, maxy number)
SQLite
st_envintersects (geometry1 geometryblob, geometry2 geoemtryblob) st_envintersects (geometry1 geoemtryblob, minx float64, miny float64, maxx float64, maxy float64)
Rückgabetyp
Boolesch
Beispiel
In diesem Beispiel wird nach einer Geometrie mit einem Envelope gesucht, der vom definierten Polygon überschnitten wird.
Mit der ersten SELECT-Anweisung werden die Envelopes der beiden Geometrien und die Geometrien selbst verglichen, um zu ermitteln, ob sich die Features oder Envelopes überschneiden.
Die zweite SELECT-Anweisung verwendet einen Envelope, um zu ermitteln, ob Features in dem Envelope liegen, den Sie mit der WHERE-Klausel der SELECT-Anweisung übergeben.
Oracle
--Define and populate the table.
CREATE TABLE sample_geoms (
id integer,
geometry sde.st_geometry);
INSERT INTO SAMPLE_GEOMS (id, geometry) VALUES (
1,
sde.st_geometry ('linestring (10 10, 50 50)', 4326)
);
INSERT INTO SAMPLE_GEOMS (id, geometry) VALUES (
2,
sde.st_geometry ('linestring (10 20, 50 60)', 4326)
);
--Find the intersection of the geometries and the geometries' envelopes.
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
--Find the geometries whose envelopes intersect the specified envelope.
SELECT id
FROM SAMPLE_GEOMS
WHERE sde.st_envintersects(geometry, 5, 5, 60, 65) = 1;
ID
1
2
SQLite
--Define and populate the table.
CREATE TABLE sample_geoms (
id integer primary key autoincrement not null
);
SELECT AddGeometryColumn (
NULL,
'sample_geoms',
'geometry',
4326,
'linestring',
'xy',
'null'
);
INSERT INTO SAMPLE_GEOMS (geometry) VALUES (
st_geometry ('linestring (10 10, 50 50)', 4326)
);
INSERT INTO SAMPLE_GEOMS (geometry) VALUES (
st_geometry ('linestring (10 20, 50 60)', 4326)
);
--Find the intersection of the geometries and the geometries' envelopes.
SELECT a.id AS aid, b.id AS bid, st_intersects (a.geometry, b.geometry) AS "Intersects",
st_envintersects (a.geometry, b.geometry) AS "Envelope_Intersects"
FROM SAMPLE_GEOMS a, SAMPLE_GEOMS b
WHERE a.id = 1 AND b.id = 2;
aid bid Intersects Envelope_Intersects
1 2 0 1
--Find the geometries whose envelopes intersect the specified envelope.
SELECT id
FROM SAMPLE_GEOMS
WHERE st_envintersects(geometry, 5, 5, 60, 65) = 1;
ID
1
2