Пространственные операции

Пространственные операции используют геометрические функции для получения пространственных данных в качестве входных, анализируют их и создают выходные данные, являющиеся результатом анализа входных.

К данным, вычисляемым с помощью пространственных операций, относятся:

При анализе входных данных возвращаются координаты или текстовое представление полученной геометрии. Эту информацию можно использовать как часть более сложного запроса для проведения дальнейшего анализа, или же использовать результат в качестве входных данных для другой таблицы.

Например, можно включить операцию буферизации в условие WHERE запроса пересечения, чтобы определить, пересекает ли указанная геометрия область определенного размера вокруг другой геометрии.

ПримечаниеПримечание:

Ниже приведены примеры использования функции ST_Geometry. Чтобы узнать о специфических функциях геометрии и синтаксисе, используемом в других базах данных и с другими пространственными типами, обратитесь к документации по соответствующим базам данных и типам данных.

В этом примере всем владельцам недвижимости, находящейся на расстоянии 1000 футов от перекрываемой улицы, отправляются уведомления. Условие WHERE создает 1000-футовый буфер вокруг перекрываемой улицы. Затем буфер сравнивается с объектами в этой области, чтобы определить, какие из них пересекаются буферной зоной.

SELECT p.owner,p.address,s.stname
FROM parcels p, streets s
WHERE s.stname = 'Main'
AND sde.st_intersects (p.shape, sde.st_buffer (s.shape, 1000)) = 't';

В этом примере выбирается улица (Main) для условия WHERE, затем вокруг нее строится буфер, который сравнивается с объектами в таблице земельных участков для нахождения пересечений.* Для всех участков, которые пересекаются с буфером Main Street, возвращается список имен и адресов владельцев.

ПримечаниеПримечание:

*Порядок выполнения частей условия WHERE зависит от оптимизатора базы данных.

Ниже приведен пример использования результата пространственной операции объединения таблиц с данными городских кварталов и школьными округами; полученные результаты записываются в отдельную таблицу:

INSERT INTO combo c (shape)
VALUES (
(SELECT sde.st_union (n.shape,d.shape)
FROM neighborhoods n, school_districts d),5);

Более подробная информация об использовании пространственных операторов с ST_Geometry находится в разделе Функции пространственных операций для ST_Geometry. Для получения информации об использовании пространственных операторов в IBM DB2, IBM Informix, Oracle Spatial, PostGIS или Microsoft SQL Server, см. документацию к этим СУБД.

Связанные темы

12/10/2012