ST_Envelope

Définition

ST_Envelope renvoie l'emprise minimale d'un objet ST_Geometry sous forme de polygone.

RemarqueRemarque :

Cette fonction est conforme à la spécification en matière d'entités simples de l'OGC (Open Geospatial Consortium, Inc.) qui indique que l'objet ST_Envelope renvoie un polygone. Pour fonctionner avec des cas particuliers de géométries ponctuelles ou de lignes horizontales et verticales, la fonction ST_Envelope renvoie un polygone autour de ces formes qui se trouvent une unité au-dessus et au dessous des coordonnées x et y maximales et minimales.

Syntaxe

sde.st_envelope (g1 sde.st_geometry)

Type de retour

ST_Geometry

Exemple

La colonne geotype de la table envelope_test stocke le nom de la sous-classe de géométrie stockée dans la colonne g1 de type ST_Geometry.

CREATE TABLE envelope_test (geotype varchar(20), g1 sde.st_geometry);

Les instructions INSERT ci-dessous insèrent les différentes sous-classes de géométrie dans la table envelope_test.

Oracle

INSERT INTO ENVELOPE_TEST VALUES (
'Point',
sde.st_geometry ('point (10.02 20.01)', 0)
);

INSERT INTO ENVELOPE_TEST VALUES (
'Linestring',
sde.st_geometry ('linestring (10.01 20.01, 10.01 30.01, 10.01 40.01)', 0)
);

INSERT INTO ENVELOPE_TEST VALUES (
'Linestring',
sde.st_geometry ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0)
);

INSERT INTO ENVELOPE_TEST VALUES (
'Polygon',
sde.st_geometry ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 0)
);

INSERT INTO ENVELOPE_TEST VALUES (
'Multipoint',
sde.st_geometry ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0)
);

INSERT INTO ENVELOPE_TEST VALUES (
'Multilinestring',
sde.st_geometry ('multilinestring ((10.01 20.01, 20.01 20.01, 30.01 20.01), (30.01 20.01, 40.01 20.01, 50.01 20.01))', 0)
);

INSERT INTO ENVELOPE_TEST VALUES (
'Multilinestring',
sde.st_geometry ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 0)
);

INSERT INTO ENVELOPE_TEST VALUES (
'Multipolygon',
sde.st_geometry ('multipolygon (((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01), (51.71 21.73, 73.36 27.04, 71.52 32.87,
52.43 31.90, 51.71 21.73)))', 0)
);

PostgreSQL

INSERT INTO envelope_test VALUES (
'Point',
sde.st_point ('point (10.02 20.01)', 0)
);

INSERT INTO envelope_test VALUES (
'Linestring',
sde.st_linestring ('linestring (10.01 20.01, 10.01 30.01, 10.01 40.01)', 0)
);

INSERT INTO envelope_test VALUES (
'Linestring',
sde.st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0)
);

INSERT INTO envelope_test VALUES (
'Polygon',
sde.st_polygon ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 0)
);

INSERT INTO envelope_test VALUES (
'Multipoint',
sde.st_multipoint ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0)
);

INSERT INTO envelope_test VALUES (
'Multilinestring',
sde.st_multilinestring ('multilinestring ((10.01 20.01, 20.01 20.01, 30.01 20.01), (30.01 20.01, 40.01 20.01, 50.01 20.01))', 0)
);

INSERT INTO envelope_test VALUES (
'Multilinestring',
sde.st_multilinestring ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 0)
);

INSERT INTO envelope_test VALUES (
'Multipolygon',
sde.st_multipolygon ('multipolygon (((10.02 20.01, 11.92 35.64, 25.02 34.15,
19.15 33.94, 10.02 20.01), (51.71 21.73, 73.36 27.04, 71.52 32.87,
52.43 31.90, 51.71 21.73)))', 0)
);

Cette requête liste le nom de sous-classe et son enveloppe. La fonction ST_Envelope renvoie l'enveloppe entourant un objet point, linestring ou polygon.

Oracle

SELECT geotype, sde.st_astext (sde.st_envelope (g1)) Envelope
FROM ENVELOPE_TEST;

GEOTYPE      Envelope
 
 Point            POLYGON (( 9.02000000 19.01000000, 11.02000000 19.01000000, 
11.02000000 21.01000000, 9.02000000 21.01000000, 9.02000000 19.01000000))
 Linestring       POLYGON (( 9.01000000 19.01000000, 11.01000000 19.01000000, 
11.01000000 41.01000000, 9.01000000 41.01000000, 9.01000000 19.01000000))
 Linestring       POLYGON (( 10.02000000 20.01000000, 11.92000000 20.01000000,
11.92000000 25.64000000, 10.02000000 25.64000000, 10.02000000 20.01000000))
 Polygon          POLYGON (( 10.02000000 20.01000000, 25.02000000 20.01000000,
25.02000000 35.64000000, 10.02000000 35.64000000, 10.02000000 20.01000000))
 Multipoint       POLYGON (( 10.02000000 20.01000000, 11.92000000 20.01000000,
11.92000000 25.64000000, 10.02000000 25.64000000, 10.02000000 20.01000000))
 Multilinestring  POLYGON (( 9.01000000 19.01000000, 51.01000000 19.01000000, 
51.01000000 21.01000000, 9.01000000 21.01000000, 9.01000000 19.01000000))
 Multilinestring  POLYGON (( 9.55000000 20.01000000, 15.36000000 20.01000000, 
15.36000000 30.11000000, 9.55000000 30.11000000, 9.55000000 20.01000000))
 Multipolygon     POLYGON (( 10.02000000 20.01000000, 73.36000000 20.01000000,
73.36000000 35.64000000, 10.02000000 35.64000000, 10.02000000 20.01000000)) 

PostgreSQL

SELECT geotype, sde.st_astext (sde.st_envelope (g1)) 
AS Envelope
FROM envelope_test;

geotype     envelope

 Point           | POLYGON (( 9.02000000 19.01000000, 11.02000000 19.01000000, 
11.02000000 21.01000000, 9.02000000 21.01000000, 9.02000000 19.01000000))
 Linestring      | POLYGON (( 9.01000000 19.01000000, 11.01000000 19.01000000, 
11.01000000 41.01000000, 9.01000000 41.01000000, 9.01000000 19.01000000))
 Linestring      | POLYGON (( 10.02000000 20.01000000, 11.92000000 20.01000000,
11.92000000 25.64000000, 10.02000000 25.64000000, 10.02000000 20.01000000))
 Polygon         | POLYGON (( 10.02000000 20.01000000, 25.02000000 20.01000000,
25.02000000 35.64000000, 10.02000000 35.64000000, 10.02000000 20.01000000))
 Multipoint      | POLYGON (( 10.02000000 20.01000000, 11.92000000 20.01000000,
11.92000000 25.64000000, 10.02000000 25.64000000, 10.02000000 20.01000000))
 Multilinestring | POLYGON (( 9.01000000 19.01000000, 51.01000000 19.01000000, 
51.01000000 21.01000000, 9.01000000 21.01000000, 9.01000000 19.01000000))
 Multilinestring | POLYGON (( 9.55000000 20.01000000, 15.36000000 20.01000000, 
15.36000000 30.11000000, 9.55000000 30.11000000, 9.55000000 20.01000000))
 Multipolygon    | POLYGON (( 10.02000000 20.01000000, 73.36000000 20.01000000,
73.36000000 35.64000000, 10.02000000 35.64000000, 10.02000000 20.01000000))

7/10/2012