ST_EnvIntersects
Remarque :
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