ST_Relate

定義

ST_Relate は、2 つの ST_Geometry を比較し、ジオメトリが DE-9IM のパターン マトリックス文字列で指定された条件を満たす場合は 1(Oracle)または t(PostgreSQL)を返します。それ以外の場合は 0(Oracle)または f(PostgreSQL)を返します。

構文

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

戻り値のタイプ

Boolean

DE-9IM のパターン マトリックスは、ジオメトリを比較するための手段です。このようなマトリックスにはさまざまなタイプがあります。たとえば、イコール パターン マトリックスは、2 つのジオメトリが等しいかどうかを判定します。

次の CREATE TABLE ステートメントを使用して、relate_test テーブルを作成します。

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

次の INSERT ステートメントは、サンプル サブクラスを 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)
);

次の SELECT ステートメントとそれに対応する結果セットは、geotype 列に格納されているサブクラス名と、そのジオタイプのディメンションをリストします。

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