Definition
ST_IsSimple gibt 1 (Oracle und SQLite) oder t (PostgreSQL) zurück, wenn das Geometrieobjekt nach der Definition des Open Geospatial Consortium (OGC) einfach ist. Andernfalls wird 0 (Oracle und SQLite) oder f (PostgreSQL) zurückgegeben.
Syntax
Oracle und PostgreSQL
sde.st_issimple (geometry1 sde.st_geometry)
SQLite
st_issimple (geometry1 geometryblob)
Rückgabetyp
Boolesch
Beispiel
Die Tabelle "issimple_test" wird mit zwei Spalten erstellt. Die Spalte "pid" ist vom Datentyp smallint und enthält die eindeutige Kennung der einzelnen Zeilen. In der Spalte "g1" werden die einfachen und nicht einfachen Geometriebeispiele gespeichert.
Mit der INSERT-Anweisung werden zwei Datensätze in die Tabelle "issimple_test" eingefügt. Der erste Datensatz enthält einen einfachen Linestring, weil er seinen Innenbereich nicht schneidet. Der zweite Datensatz ist nach der OGC-Definition nicht einfach, weil er seinen Innenbereich schneidet.
Die Abfrage gibt die Ergebnisse der Funktion ST_IsSimple zurück. Für den ersten Datensatz wird 1 oder t zurückgegeben, weil der Linestring einfach ist. Für den zweiten Datensatz wird dagegen 0 oder f zurückgegeben, weil der Linestring nicht einfach ist.
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