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_geometry ('point (10.02 20.01)', 0),
sde.st_geometry ('point (10.02 20.01)', 0),
sde.st_geometry ('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