ST_Relate

Definition

ST_Relate vergleicht zwei ST_Geometry-Geometrien und gibt 1 (Oracle) oder t (PostgreSQL) zurück, wenn die beiden Geometrien die Bedingungen erfüllen, die im DE-9IM-Mustermatrixstring festgelegt worden sind. Andernfalls wird 0 (Oracle) oder f (PostgreSQL) zurückgegeben.

Syntax

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

Rückgabetyp

Boolesch

Beispiel

Eine DE-9IM-Mustermatrix ist ein Hilfsmittel zum Vergleichen von Geometrien. Es gibt verschiedene Typen solcher Matrizen. Beispielsweise können Sie mit der Mustermatrix "equals" herausfinden, ob zwei beliebige Geometrien gleich sind.

Die Tabelle "relate_test" wird mit der folgenden CREATE TABLE-Anweisung erstellt.

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

Mit der folgenden INSERT-Anweisung wird eine Beispiel-Subclass in die Tabelle "relate_test" eingefügt.

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)
);

Die folgende SELECT-Anweisung und der zugehörige Ergebnissatz listet den Namen der in der Spalte "geotype" gespeicherten Subclass zusammen mit der Dimension dieses "geotype"-Eintrags auf.

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