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

Thèmes connexes

5/10/2014