ST_Envelope

Definición

ST_Envelope devuelve el recuadro de selección mínimo de un objeto ST_Geometry como un polígono.

NotaNota:

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

7/11/2012