ST_OrderingEquals

Définition

ST_OrderingEquals compare deux objets ST_Geometry et renvoie 1 (Oracle) ou t (PostgreSQL) si les géométries sont égales et si les coordonnées sont dans le même ordre. Sinon, la fonction renvoie 0 (Oracle) ou f (PostgreSQL).

Syntaxe

sde.st_orderingequals (g1 sde.st_geometry, g2 sde.st_geometry)

Type de retour

Nombre entier (Booléen)

Exemple

L'instruction CREATE TABLE ci-dessous crée la table LINESTRING_TEST, qui comporte deux colonnes d'objets linestring, ln1 et ln2.

CREATE TABLE linestring_test (
lid integer,
ln1 sde.st_geometry,
ln2 sde.st_geometry);

L'instruction INSERT ci-dessous insère deux valeurs ST_LineString dans ln1 et ln2 qui sont égales et dont les coordonnées ont le même ordre.

Oracle

INSERT INTO LINESTRING_TEST VALUES (
1,
sde.st_geometry ('linestring (10.01 20.02, 21.50 12.10)', 0),
sde.st_geometry ('linestring (21.50 12.10, 10.01 20.02)', 0)
);

PostgreSQL

INSERT INTO linestring_test VALUES (
1,
sde.st_linestring ('linestring (10.01 20.02, 21.50 12.10)', 0),
sde.st_linestring ('linestring (21.50 12.10, 10.01 20.02)', 0)
);

L'instruction SELECT ci-dessous et le jeu de résultats correspondant montrent comment la fonction ST_Equals retourne 1 (TRUE), quel que soit l'ordre des coordonnées. La fonction ST_OrderingEquals renvoie 0 (FALSE) si les géométries ne sont pas égales et si les coordonnées ont le même ordre.

Oracle

SELECT lid, sde.st_equals (ln1, ln2) Equals, sde.st_orderingequals (ln1, ln2) OrderingEquals
FROM LINESTRING_TEST;

lid Equals     OrderingEquals

1   1          0

PostgreSQL

SELECT lid, sde.st_equals (ln1, ln2) AS Equals, sde.st_orderingequals (ln1, ln2) 
AS OrderingEquals
FROM linestring_test;

lid equals     orderingequals

1   t          f
9/12/2013