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