ST_IsSimple
Définition
ST_IsSimple renvoie 1 (Oracle et SQLite) ou t (PostgreSQL) si l'objet géométrie est simple conformément à la spécification de l'OGC (Open Geospatial Consortium). Dans le cas contraire, la fonction renvoie 0 (Oracle et SQLite) ou f (PostgreSQL).
Syntaxe
Oracle et PostgreSQL
sde.st_issimple (geometry1 sde.st_geometry)
SQLite
st_issimple (geometry1 geometryblob)
Type de retour
Booléen
Exemple
La table issimple_test est créée avec deux colonnes. La colonne pid est de type de données smallint et contient l'identifiant unique de chaque enregistrement. La colonne g1 stocke les exemples de géométrie simples et non simples.
Les instructions INSERT suivantes insèrent deux enregistrements dans la table issimple_test. Le premier est un objet linestring simple puisqu'il n'intersecte pas son intérieur. Le second est non simple, conformément à la spécification de l'OGC, puisqu'il intersecte son intérieur.
La requête suivante renvoie les résultats de la fonction ST_IsSimple. Le premier enregistrement renvoie la valeur 1 ou t puisque l'objet linestring est simple, alors que le deuxième enregistrement renvoie la valeur 0 ou f puisque l'objet linestring n'est pas 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