Geo Fence: cómo encontrar si un punto o una forma es dentro de un polígono utilizando Oracle Spatial
-
25-09-2019 - |
Pregunta
¿Cómo puedo encontrar si un punto o un polígono está dentro de otro polígono utilizando Oracle Spatial consulta SQL
Aquí está el panorama;
Tengo una tabla (STATE_TABLE) que contiene un tipo espacial (SDO_GEOMETRY), que es un polígono (de, digamos, un Estado), no tengo otra tabla (UNIVERSITY_TABLE) que contiene datos espaciales (SDO_GEOMETRY) (Punto / polígono), que contiene Universidades;
Ahora ¿cómo puedo encontrar si una universidad seleccionada ( 's) están en un estado determinado, utilizando SQL instrucción de selección.
En primer lugar quiero localizar existencia de objeto (s) dada en una barrera geográfica.
Gracias.
Solución
Vamos a necesitar usar cualquiera SDO_CONTAINS o SDO_RELATE con una máscara de 'contiene'
Por favor, consulte la documentación se encuentra en
SDO_CONTAINS http://download.oracle.com/docs /cd/E11882_01/appdev.112/e11830/sdo_operat.htm#sthref1064 para
o
SDO_RELATE http://download.oracle.com/docs /cd/E11882_01/appdev.112/e11830/sdo_operat.htm#i78531
Cualquiera de éstos que haría algo como lo siguiente (suponiendo que su información espacial está contenida en una columna llamada 'GEOM' que está indexado espacialmente):
select
ST.NAME, UT.UNIVERSITY_NAME
from
STATE_TABLE ST
INNER JOIN UNIVERSITY_TABLE UT
ON SDO_CONTAINS(ST.GEOM, UT.GEOM) = 'TRUE'
Vas a tener que perdonarme, ya que no recuerdo específicamente la sintaxis correcta para esto y no sé si lo anterior se unen funcionará correctamente en absoluto. Esto debería ser suficiente para señalarle en la dirección correcta, aunque.