ST_Boundary

Definición

ST_Boundary toma un objeto de geometría y devuelve su límite combinado como un objeto de geometría.

Sintaxis

sde.st_boundary (g1 sde.st_geometry)

Tipo de devolución

ST_Geometry

Ejemplo

En este ejemplo, la tabla de límites se crea con dos columnas: tipo, definido como varchar y la geometría, que se define como la superclase ST_Geometry. Las declaraciones posteriores INSERT agregan un registro para cada una de las geometrías de subclase. La función ST_Boundary recupera el límite de cada subclase almacenada en la columna de geometría. Observe que la dimensión de la geometría resultante es siempre una menor que la geometría de entrada. Puntos y multipuntos siempre resultan en un límite que es una geometría vacía, dimensión –1. Las cadenas de texto de líneas y las multicadenas devuelven un límite multipunto, dimensión 0. Un polígono o multipolígono siempre devuelve un límite de multicadenas, dimensión 1.

Oracle

CREATE TABLE boundaries (geotype varchar(20), geometry sde.st_geometry);  INSERT INTO BOUNDARIES VALUES ( 'Point', sde.st_pointfromtext ('point (10.02 20.01)', 0) );  INSERT INTO BOUNDARIES VALUES ( 'Linestring', sde.st_linefromtext ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0) );  INSERT INTO BOUNDARIES VALUES ( 'Polygon', sde.st_polyfromtext ('polygon ((10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01))', 0) );  INSERT INTO BOUNDARIES VALUES ( 'Multipoint', sde.st_mpointfromtext ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0) );  INSERT INTO BOUNDARIES VALUES ( 'Multilinestring', sde.st_mlinefromtext ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 0) );  INSERT INTO BOUNDARIES VALUES ( 'Multipolygon', sde.st_mpolyfromtext ('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) );  SELECT type, sde.st_astext (sde.st_boundary (geometry)) "The boundary" FROM BOUNDARIES;  GEOTYPE            The boundary  Point              POINT EMPTY Linestring         MULTIPOINT(10.02000000 20.01000000, 11.92000000 25.64000000) Polygon            MULTILINESTRING ((10.02000000 20.01000000, 19.15000000 33.94000000,25.02000000 34.15000000, 11.92000000 35.64000000, 10.02000000 20.01000000)) Multipoint         POINT EMPTY Multilinestring    MULTIPOINT (9.55000000 23.75000000, 10.02000000 20.01000000, 11.92000000 25.64000000, 15.36000000 30.11000000) Multipolygon       MULTILINESTRING((51.71000000 21.73000000, 73.36000000 27.04000000, 71.52000000 32.87000000, 52.43000000 31.90000000, 51.71000000 21.73000000), (10.02000000 20.01000000, 19.15000000 33.94000000, 25.02000000 34.15000000, 11.92000000 35.64000000, 10.02000000 20.01000000))

PostgreSQL

CREATE TABLE boundaries (type varchar(20), geometry st_geometry);  INSERT INTO boundaries VALUES ( 'Point', st_point ('point (10.02 20.01)', 0) );  INSERT INTO boundaries VALUES ( 'Linestring', st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0) );  INSERT INTO boundaries VALUES ( 'Polygon', 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 boundaries VALUES ( 'Multipoint', st_multipoint ('multipoint (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0) );  INSERT INTO boundaries VALUES ( 'Multilinestring', 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 boundaries VALUES ( 'Multipolygon', 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) );  SELECT type, st_astext (st_boundary (geometry))  AS "The boundary" FROM boundaries;  type              The boundary  Point              EMPTY Linestring         MULTIPOINT(10.02000000 20.01000000, 11.92000000  25.64000000) Polygon            LINESTRING ((10.02000000 20.01000000, 19.15000000  33.94000000,25.02000000 34.15000000, 11.92000000 35.64000000, 10.02000000 20.01000000)) Multipoint         EMPTY Multilinestring    MULTIPOINT (9.55000000 23.75000000, 10.02000000  20.01000000, 11.92000000 25.64000000, 15.36000000 30.11000000) Multipolygon       MULTILINESTRING((51.71000000 21.73000000, 73.36000000 27.04000000, 71.52000000 32.87000000, 52.43000000 31.90000000, 51.71000000 21.73000000), (10.02000000 20.01000000, 19.15000000 33.94000000, 25.02000000 34.15000000, 11.92000000 35.64000000,  10.02000000 20.01000000))

3/6/2012