Geo Recinzione: come trovare se un punto o una forma è all'interno di un poligono utilizzando Oracle Spatial
-
25-09-2019 - |
Domanda
Come faccio a trovare se un punto o un poligono è all'interno di un altro poligono utilizzando Oracle Spatial query SQL
Ecco lo scenario;
Ho una tabella (STATE_TABLE), che contiene un tipo spaziale (SDO_GEOMETRY) che è un poligono (di dire Stato), ho un altro tavolo (UNIVERSITY_TABLE) che contiene dati spaziali (SDO_GEOMETRY) (punto / poligono) quali contiene le università;
Ora come faccio a trovare se un'Università selezionato ( 's) sono in un determinato Stato utilizzando SQL SELECT.
In primo luogo voglio individuare l'esistenza di dato oggetto (s) in un geofence.
Grazie.
Soluzione
Si sta andando ad avere bisogno di utilizzare SDO_CONTAINS o SDO_RELATE con una maschera di 'contiene'
Si prega di consultare la documentazione si trova a
SDO_CONTAINS http://download.oracle.com/docs /cd/E11882_01/appdev.112/e11830/sdo_operat.htm#sthref1064 per
o
SDO_RELATE http://download.oracle.com/docs /cd/E11882_01/appdev.112/e11830/sdo_operat.htm#i78531
Uno di questi si farebbe qualcosa di simile alla seguente (supponendo che l'informazioni spaziali è contenuto in una colonna chiamata 'GEOM' che è spazialmente indicizzato):
select
ST.NAME, UT.UNIVERSITY_NAME
from
STATE_TABLE ST
INNER JOIN UNIVERSITY_TABLE UT
ON SDO_CONTAINS(ST.GEOM, UT.GEOM) = 'TRUE'
Dovrai perdonare me come io non mi ricordo in particolare la sintassi corretta per questo e non so se quanto sopra si uniscono funzionerà correttamente a tutti. Questo dovrebbe essere sufficiente per puntare nella direzione giusta però.