ST_Envelope
Definición
ST_Envelope devuelve el recuadro de selección mínimo de un objeto ST_Geometry como un polígono.
Esta función cumple con la especificación de entidades simples del Consorcio geoespacial abierto (OGC) que indica que ST_Envelope devuelve un polígono. Para trabajar con casos especiales de geometrías de punto o, líneas horizontales o verticales, la función ST_Envelope devuelve un polígono alrededor de esas formas que son una unidad arriba y abajo de las coordenadas máx x e y, y mín x e y.
Sintaxis
sde.st_envelope (g1 sde.st_geometry)
Tipo de devolución
ST_Geometry
Ejemplo
La columna de geotipo de la tabla envelope_test almacena el nombre de la subclase de geometría almacenada en la columna ST_Geometry g1.
CREATE TABLE envelope_test (geotype varchar(20), g1 sde.st_geometry);
Las declaraciones INSERT insertan cada subclase de geometría en la tabla 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) );
La consulta enumera el nombre de subclase y su contorno. La función ST_Envelope devuelve el contorno alrededor de un punto, línea o polígono.
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))