ST_Relate compare deux géométries et renvoie la valeur 1 (TRUE) si elles remplissent les conditions spécifiées par la chaîne de la matrice de schémas DE-9IM ; sinon, ce prédicat renvoie la valeur 0 (FALSE). Pour plus d'informations sur les matrices du modèle DE-9IM, reportez-vous à la section Prédicats.
Syntaxe
db2gse.ST_Relate(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry, patternMatrix CHAR(9))
Type de retour
Integer
Exemples
Une matrice de schémas DE-9IM est un outil de comparaison des géométries. Il existe plusieurs types de matrices de ce genre. Par exemple, la matrice d'égalité vous indique si deux géométries quelconques sont égales.
En l'occurrence, une matrice de schémas d'égalité, illustrée au Tableau 57, se lit de gauche à droite et de haut en bas sous forme de
chaîne ("T*F**FFF*").
Tableau 57. Matrice des schémas d'égalité
|
|
|
b
|
|
|
|
Intérieur
|
Contour
|
Extérieur
|
|
Intérieur
|
T
|
*
|
F
|
a
|
Contour
|
*
|
*
|
F
|
|
Extérieur
|
F
|
F
|
*
|
Ensuite, la table RELATE_TEST est créée avec l'instruction CREATE TABLE ci-après.
CREATE TABLE RELATE_TEST (rid integer, g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry, g3 db2gse.ST_Geometry);
Les instructions INSERT insèrent une sous-classe exemple dans la table RELATE_TEST.
INSERT INTO RELATE_TEST VALUES( 1, db2gse.ST_PointFromText('point (10.02 20.01)', db2gse.coordref()..srid(0), db2gse.ST_PointFromText('point (10.02 20.01)', db2gse.coordref()..srid(0), db2gse.ST_PointFromText('point (30.01 20.01)', db2gse.coordref()..srid(0) )
L'instruction SELECT ci-après et l'ensemble de résultats correspondant affichent le nom de la sous-classe stocké dans la colonne geotype, accompagné de la dimension de ce type de géométrie.
SELECT rid, relate(g1,g2, 'T*F**FFF*') equals FROM relate_test RID equals -------- ----------- 1 1 1 record(s) selected.