Definición
ST_IsClosed toma un ST_LineString o ST_MultiLineString y devuelve 1 (Oracle y SQLite) o t (PostgreSQL) si está cerrado; de lo contrario, devuelve 0 (Oracle y SQLite) o f (PostgreSQL).
Sintaxis
Oracle y PostgreSQL
sde.st_isclosed (line1 sde.st_geometry) sde.st_isclosed (multiline1 sde.st_geometry)
SQLite
st_isclosed (geometry1 geometryblob)
Tipo de devolución
Booleano
Ejemplos
Pruebas de una cadena de texto de líneas
La tabla closed_linestring se crea con una columna de cadena de texto de línea única.
Las declaraciones INSERT insertan dos registros en la tabla closed_linestring. El primer registro no es una cadena de texto de líneas cerradas, mientras que la segunda lo es.
La consulta devuelve los resultados de la función ST_IsClosed. La primera fila devuelve 0 o f porque la cadena de líneas no está cerrada, mientras que la segunda fila devuelve 1 o t porque la cadena de líneas está cerrada.
Oracle
CREATE TABLE closed_linestring (ln1 sde.st_geometry);
INSERT INTO CLOSED_LINESTRING VALUES (
sde.st_linefromtext ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO CLOSED_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)', 4326)
);
SELECT sde.st_isclosed (ln1) Is_it_closed
FROM CLOSED_LINESTRING;
Is_it_closed
0
1
PostgreSQL
CREATE TABLE closed_linestring (ln1 sde.st_geometry);
INSERT INTO closed_linestring VALUES (
sde.st_linestring ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO closed_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)', 4326)
);
SELECT sde.st_isclosed (ln1) AS Is_it_closed
FROM closed_linestring;
is_it_closed
f
t
SQLite
CREATE TABLE closed_linestring (id integer);
SELECT AddGeometryColumn (
NULL,
'closed_linestring',
'ln1',
4326,
'linestring',
'xy',
'null'
);
INSERT INTO closed_linestring VALUES (
1,
st_linefromtext ('linestring (10.02 20.01, 10.32 23.98, 11.92 25.64)', 4326)
);
INSERT INTO closed_linestring VALUES (
2,
st_linefromtext ('linestring (10.02 20.01, 11.92 35.64, 25.02 34.15, 19.15 33.94, 10.02 20.01)', 4326)
);
SELECT st_isclosed (ln1)
AS "Is_it_closed"
FROM closed_linestring;
Is_it_closed
0
1
Pruebas de una cadena de texto multilínea
La tabla closed_mlinestring se crea con una columna ST_MultiLineString única.
Las declaraciones INSERT insertan un registro ST_MultiLineString que no está cerrado y otro que si.
La consulta enumera los resultados de la función ST_IsClosed. La primera fila devuelve 0 o f porque la cadena de texto multilínea no está cerrada. La segunda fila devuelve 1 o t porque la cadena de texto multilínea almacenada en la columna ln1 está cerrada. Una cadena de texto multilínea está cerrada si todos sus elementos de cadena de texto de línea están cerrados.
Oracle
CREATE TABLE closed_mlinestring (mln1 sde.st_geometry);
INSERT INTO closed_mlinestring VALUES (
sde.st_mlinefromtext ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 4326)
);
INSERT INTO closed_mlinestring VALUES (
sde.st_mlinefromtext ('multilinestring ((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))', 4326)
);
SELECT sde.st_isclosed (mln1) Is_it_closed
FROM CLOSED_MLINESTRING;
Is_it_closed
0
1
PostgreSQL
CREATE TABLE closed_mlinestring (mln1 sde.st_geometry);
INSERT INTO closed_mlinestring VALUES (
sde.st_mlinefromtext ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 4326)
);
INSERT INTO closed_mlinestring VALUES (
sde.st_mlinefromtext ('multilinestring ((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))', 4326)
);
SELECT st_isclosed (mln1)
AS Is_it_closed
FROM closed_mlinestring;
is_it_closed
f
t
SQLite
CREATE TABLE closed_mlinestring (mln1 geometryblob);
SELECT AddGeometryColumn (
NULL,
'closed_mlinestring',
'mln1',
4326,
'multilinestring',
'xy',
'null'
);
INSERT INTO closed_mlinestring VALUES (
st_mlinefromtext ('multilinestring ((10.02 20.01, 10.32 23.98, 11.92 25.64), (9.55 23.75, 15.36 30.11))', 4326)
);
INSERT INTO closed_mlinestring VALUES (
st_mlinefromtext ('multilinestring ((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))', 4326)
);
SELECT sde.st_isclosed (mln1)
AS "Is_it_closed"
FROM CLOSED_MLINESTRING;
Is_it_closed
0
1