ST_Relate confronta le due geometrie e restituisce 1 (TRUE) se le geometrie soddisfano le condizioni specificate dalla stringa della matrice modello DE-9IM; in caso contrario, viene restituito 0 (FALSE). Per le informazioni relative alle matrici modello DE-9IM, consultare Funzioni predicato.
Sintassi
db2gse.ST_Relate(g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry, patternMatrix String)
Tipo di ritorno
Integer
Esempi
La matrice modello DE-9IM è un dispositivo per il confronto delle geometrie. Vi sono diversi tipi di matrici. Ad esempio, la matrice modello equals indica se vi sono due geometrie uguali.
In questo esempio, una matrice modello equals, mostrata nella Tabella 56, viene letta da sinistra verso destra e dall'alto verso
il basso in una stringa ("T*F**FFF*").
Tabella 56. Matrice modello equals
|
|
|
b
|
|
|
|
Interno
|
Limite
|
Esterno
|
|
Interno
|
P
|
*
|
F
|
a
|
Limite
|
*
|
*
|
F
|
|
Esterno
|
F
|
F
|
*
|
Quindi, viene creata la tabella RELATE_TEST con la seguente istruzione CREATE TABLE.
CREATE TABLE RELATE_TEST (rid integer, g1 db2gse.ST_Geometry, g2 db2gse.ST_Geometry, g3 db2gse.ST_Geometry);
Le seguenti istruzioni INSERT inseriscono una classe secondaria di esempio nella tabella 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) )
La seguente istruzione SELECT ed la serie di risultati corrispondente elencano il nome della classe secondaria memorizzato nella colonna GEOTYPE con la dimensione corrispondente a geotype.
SELECT rid, relate(g1,g2) equals, relate(g1,g3) not_equals FROM relate_test RID equals not_equals -------- ----------- ----------------- 1 1 0 1 record(s) selected.