Cerca de Geo: Encuentra serie de características (puntos / líneas / polígonos) dentro de un polígono utilizando Oracle Spatial

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

  •  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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top