Гео забора: как найти, если точка или форма находится внутри многоугольника, используя Oracle Spatial

StackOverflow https://stackoverflow.com/questions/4601202

Вопрос

Как найти, если точка или многоугольник внутри другого многоугольника, используя Oracle Spatial SQL Query

Вот сценарий;

У меня есть таблица (STATE_TABLE), которая содержит пространственный тип (SDO_Geometry), который представляет собой многоугольник (из SELE_GEOMEOMETRY), у меня другая таблица (University_Table), которая содержит пространственные данные (SDO_GEEOMEOMETRY) (точка / полигон), которая содержит университеты;

Теперь, как я могу найти, если выбранный университет ('ы) находятся в заданном состоянии с использованием оператора SQL SELECT.

В первую очередь я хочу найти существование данного объекта в геофоре.

Спасибо.

Это было полезно?

Решение

Вам нужно будет использовать SDO_Contains, либо SDO_relate с маской «Содержит»

Пожалуйста, смотрите документацию, расположенные в

Sdo_contains.http://download.orcle.com/docs/cd/e11882_01/Appdev.112/e11830/sdo_operat.htm#sthref1064. для

или

Sdo_relate.http://download.orcle.com/docs/cd/e11882_01/Appdev.112/e11830/sdo_operat.htm#i78531.

Либо один из них, вы бы сделали что-то вроде следующего (при условии, что ваша пространственная информация содержится в столбце, называемом «GEOM», которая пространственно проиндексирована):

select 
    ST.NAME, UT.UNIVERSITY_NAME
from
    STATE_TABLE ST
    INNER JOIN UNIVERSITY_TABLE UT
      ON SDO_CONTAINS(ST.GEOM, UT.GEOM) = 'TRUE'

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top