Cerca geográfica: como encontrar se um ponto ou uma forma está dentro de um polígono usando o Oracle espacial

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

Pergunta

Como faço para encontrar se um ponto ou um polígono está dentro de outro polígono usando a consulta SQL espacial do Oracle

Aqui está o cenário;

Eu tenho uma tabela (state_table) que contém um tipo espacial (sdo_geometria) que é um polígono (de um estado), eu tenho outra tabela (University_table) que contém dados espaciais (sdo_geometry) (ponto/polígono) que contém universidades;

Agora, como faço para encontrar se uma universidade selecionada (é em um determinado estado usando a instrução SQL Select.

Principalmente, quero localizar a existência de objetos determinados em uma geofia.

Obrigado.

Foi útil?

Solução

Você precisará usar sdo_contains ou sdo_relate com uma máscara de 'contém'

Por favor, consulte a documentação localizada em

Sdo_containshttp://download.oracle.com/docs/cd/e11882_01/appdev.112/e11830/sdo_operat.htm#sthref1064 por

ou

Sdo_relatehttp://download.oracle.com/docs/cd/e11882_01/appdev.112/e11830/sdo_operat.htm#i78531

Qualquer um deles você faria algo como o seguinte (assumindo que suas informações espaciais estejam contidas em uma coluna chamada 'geom' que é espacialmente indexada):

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

Você terá que me perdoar, pois não me lembro especificamente da sintaxe correta para isso e não sei se a junção acima funcionará corretamente. Isso deve ser suficiente para apontá -lo na direção certa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top