ST_Relate

Définition

ST_Relate compare deux objets ST_Geometry et renvoie 1 (Oracle) ou t (PostgreSQL) si les géométries remplissent les conditions spécifiées par la chaîne de matrice modèle DE-9IM. Dans le cas contraire, la fonction renvoie 0 (Oracle) ou f (PostgreSQL).

Syntaxe

sde.st_relate (g1 sde.st_geometry, g2 sde.st_geometry, patternMatrix String)

Type de retour

Booléen

Exemple

Une matrice modèle DE-9IM est un périphérique permettant de comparer des géométries. Il en existe plusieurs types. Par exemple, la matrice modèle d'égalité vous dira si deux géométries sont égales.

La table relate_test est créée avec l'instruction CREATE TABLE suivante.

CREATE TABLE relate_test (g1 sde.st_geometry, g2 sde.st_geometry, g3 sde.st_geometry);

Les instructions INSERT suivantes insèrent un exemple de sous-classe dans la table relate_test.

INSERT INTO relate_test VALUES (
sde.st_pointfromtext ('point (10.02 20.01)', 0),
sde.st_pointfromtext ('point (10.02 20.01)', 0),
sde.st_pointfromtext ('point (30.01 20.01)', 0)
);

L'instruction SELECT suivante et le résultat SET correspondant répertorient le nom de sous-classe stocké dans la colonne geotype avec la dimension de ce type géographique.

Oracle

SELECT sde.st_relate (g1, g2, 'T*F**FFF*') equals, sde.st_relate (g1, g3, 'T*F**FFF*') not_equals 
FROM RELATE_TEST;
 
equals     not_equals 

1          0

PostgreSQL

SELECT st_relate (g1, g2, 'T*F**FFF*') 
AS equals, 
st_relate (g1, g3, 'T*F**FFF*') 
AS not_equals 
FROM relate_test;
 
equals     not_equals 

t          f

7/10/2012