ST_Relate

定义

ST_Relate 用于对两个 ST_Geometries 对象进行比较,如果几何满足 DE-9IM 模式矩阵字符串指定的条件,则返回 1 (Oracle) 或 t (PostgreSQL)。否则,将返回 0 (Oracle) 或 f (PostgreSQL)。

语法

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

返回类型

布尔型

示例

DE-9IM 模式矩阵是一种用于比较几何的设备。此矩阵分为多种类型。例如,相等模式矩阵将告诉您任何两个几何是否相等。

relate_test 表由下面的 CREATE TABLE 语句创建而成。

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_geometry ('point (10.02 20.01)', 0),
sde.st_geometry ('point (10.02 20.01)', 0),
sde.st_geometry ('point (30.01 20.01)', 0)
);

下面的 SELECT 语句和相应结果集列出了几何类型列中存储的子类名称和该几何类型的维度。

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
9/15/2013