ST_IsRing

Definición

ST_IsRing toma un ST_LineString y devuelve 1 (Oracle) o t (PostgreSQL) si es un anillo (por ejemplo, el tipo ST_LineString es cerrado y simple); de lo contrario, devuelve 0 (Oracle) o f (PostgreSQL).

Sintaxis

sde.st_isring (ln1 sde.st_geometry)

Tipo de devolución

Booleano

Ejemplo

La tabla ring_linestring se crea con una columna única ST_LineString, ln1.

CREATE TABLE ring_linestring (ln1 sde.st_geometry);

Las declaraciones INSERT insertan tres cadenas de texto de líneas en la columna ln1. La primera fila contiene una cadena de texto de líneas que no está cerrada y no es un anillo. La segunda fila contiene una cadena de texto de líneas simple y cerrada que es un anillo. La tercera fila contiene una cadena de texto de líneas que está cerrada, pero no es simple porque se intersecta con su propio interior. Tampoco es un anillo.

Oracle

INSERT INTO RING_LINESTRING VALUES ( sde.st_linefromtext ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0) );  INSERT INTO RING_LINESTRING VALUES ( sde.st_linefromtext ('linestring (10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01)', 0) );  INSERT INTO RING_LINESTRING VALUES ( sde.st_linefromtext ('linestring (15.47 30.12, 20.73 22.12, 10.83 14.13, 16.45 17.24, 21.56 13.37, 11.23 22.56, 19.11 26.78, 15.47 30.12)', 0) );

PostgreSQL

INSERT INTO ring_linestring VALUES ( sde.st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 0) );  INSERT INTO ring_linestring VALUES ( sde.st_linestring ('linestring (10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01)', 0) );  INSERT INTO ring_linestring VALUES ( sde.st_linestring ('linestring (15.47 30.12, 20.73 22.12, 10.83 14.13, 16.45 17.24, 21.56 13.37, 11.23 22.56, 19.11 26.78, 15.47 30.12)', 0) );

La consulta devuelve los resultados de la función. La primera fila devuelve 0 porque las cadenas de texto de líneas no son anillos, mientras que la segunda y tercera fila devuelven 1 porque son anillos.

Oracle

SELECT sde.st_isring (ln1) Is_it_a_ring FROM RING_LINESTRING;  Is_it_a_ring  0 1 1

PostgreSQL

SELECT sde.st_isring (ln1)  AS Is_it_a_ring FROM ring_linestring;  Is_it_a_ring  f t t

3/6/2012