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