Definición
ST_IsSimple devuelve 1 (Oracle y SQLite) o t (PostgreSQL) si el objeto de geometría es simple según lo define el Consorcio Geoespacial abierto (OGC); de lo contrario, devuelve 0 (Oracle y SQLite) o f (PostgreSQL).
Sintaxis
Oracle y PostgreSQL
sde.st_issimple (geometry1 sde.st_geometry)
SQLite
st_issimple (geometry1 geometryblob)
Tipo de devolución
Booleano
Ejemplo
Se crea la tabla issimple_test con dos columnas. La columna pid es un tipo de datos smallint que contiene el identificador único para cada fila. La columna g1 almacena las muestras de geometría simples y no simples.
Las declaraciones INSERT insertan dos registros en la tabla issimple_test. La primera es una cadena de texto de líneas simples porque no se interseca con su interior. La segunda es no simple, según lo define el OGC, porque no se interseca con su interior.
La consulta devuelve los resultados de la función ST_IsSimple. El primer registro devuelve 1 o t porque la cadena de líneas es simple, mientras que el segundo registro devuelve 0 o f porque la cadena de líneas no es simple.
Oracle
CREATE TABLE issimple_test (
pid smallint,
g1 sde.st_geometry
);
INSERT INTO ISSIMPLE_TEST VALUES (
1,
sde.st_linefromtext ('linestring (10 10, 20 20, 30 30)', 4326)
);
INSERT INTO ISSIMPLE_TEST VALUES (
2,
sde.st_linefromtext ('linestring (10 10, 20 20, 20 30, 10 30, 10 20,
20 10)', 4326)
);
SELECT pid, sde.st_issimple (g1) Is_it_simple
FROM ISSIMPLE_TEST;
PID Is_it_simple
1 1
2 0
PostgreSQL
CREATE TABLE issimple_test (
pid smallint,
g1 sde.st_geometry
);
INSERT INTO issimple_test VALUES (
1,
sde.st_linestring ('linestring (10 10, 20 20, 30 30)', 4326)
);
INSERT INTO issimple_test VALUES (
2,
sde.st_linestring ('linestring (10 10, 20 20, 20 30, 10 30, 10 20, 20 10)', 4326)
);
SELECT pid, sde.st_issimple (g1)
AS Is_it_simple
FROM issimple_test;
pid is_it_simple
1 t
2 f
SQLite
CREATE TABLE issimple_test (
pid integer
);
SELECT AddGeometryColumn (
NULL,
'issimple_test',
'g1',
4326,
'linestring',
'xy',
'null'
);
INSERT INTO issimple_test VALUES (
1,
st_linestring ('linestring (10 10, 20 20, 30 30)', 4326)
);
INSERT INTO issimple_test VALUES (
2,
st_linestring ('linestring (10 10, 20 20, 20 30, 10 30, 10 20, 20 10)', 4326)
);
SELECT pid, st_issimple (g1)
AS Is_it_simple
FROM issimple_test;
PID Is_it_simple
1 1
2 0