ST_EnvIntersects

RemarqueRemarque :

ST_Geometry dans Oracle uniquement

Définition

ST_EnvIntersects renvoie 1 (true) si les enveloppes de deux objets ST_Geometries se croisent. Sinon, la fonction renvoie 0 (false).

Syntaxe

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)

Type de retour

Nombre entier (Booléen)

Exemple

Cet exemple recherche une parcelle dont l'enveloppe est recoupée par le polygone défini.

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)
);

Cette instruction SELECT compare les enveloppes de deux géométries et les géométries proprement dites afin de déterminer si les entités ou les enveloppes se croisent.

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

Vous pouvez également spécifier une enveloppe afin de détecter les entités, le cas échéant, qui font partie de l'enveloppe transmise avec la clause WHERE de l'instruction SELECT.

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

ID 

1
2 

7/10/2012