ST_Relate

Определение

ST_Relate сравнивает два объекта ST_Geometry и возвращает значение 1 (Oracle) или t (PostgreSQL), если геометрии соответствуют условиям, указанным строкой шаблонной матрицы DE-9IM. В противном случае возвращается значение 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 вставляет подкласс sample в таблицу 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 и соответствующий результат SET указывают имя подкласса, хранимого в столбце 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
9/11/2013