Cerca de Geo: Encuentra serie de características (puntos / líneas / polígonos) dentro de un polígono utilizando Oracle Spatial
-
26-09-2019 - |
Pregunta
¿Cómo se escribe una consulta SQL (usando Oracle Spatial) para encontrar el número de funciones disponibles dentro de un polígono (geocerca);
Las características podrían ser o bien puntos, líneas o un polígono en sí.
Gracias.
Solución
Trate de esa declaración:
select count(*) from geometry_table t where SDO_RELATE(t.geom_column, geofence, 'mask=INSIDE') = 'TRUE'
/
Es mandetory que el primer parámetro de SDO_RELATE
es la columna de la geometría con un índice espacial.
Otros consejos
Actualización: No tenga en cuenta esta sugerencia por completo, Albert Godfrind indican que se está repitiendo lo que ya se está haciendo internamente. Por lo tanto, es ineficiente y lento:
Para añadir a la respuesta Tims, es una buena práctica para combinar SDO_FILTER y SDO_RELATE por razones de rendimiento. SDO_FILTER es rápido, sino que vuelve demasiados geometrías, se le dará todas las geometrías cuyo rectángulo delimitador mínimo (MBR) intersecta con la geometría de su valla. SDO_RELATE es exacta pero lento. Así combinar tanto:
select count(*)
from geometry_table t
where SDO_FILTER(t.geom_column, geofence) = 'TRUE' and SDO_RELATE(t.geom_column, geofence, 'mask=INSIDE') = 'TRUE'
Saludos, Chris