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