Solo puedo pensar en 3 tipos de consultas espaciales, ignorando cualquier atributo o consultas basadas en hash.
Consultas espaciales basadas en la geometría, y se utilizan para encontrar las relaciones entre entidades vectoriales. Las consultas espaciales de SQL son realmente solo un algoritmo de API de bajo nivel como Bentley-Ottmann , utilizado en OpenLayers para verificar si dos líneas se cruzan.
Como Kirk mencionó, los tipos de relación entre características se han estandarizado en el modelo de nueve intersecciones dimensionalmente extendido :
- Igual a
- Desarticular
- Se cruza
- Toques (se encuentra)
- Cruces
- En el interior)
- Contiene
- Solapamientos
- Cubiertas
- Cubierto por
Se puede argumentar que las consultas espaciales basadas en índices son una forma simplificada de consultas de geometría. La mayoría de las consultas de geometría usan un índice espacial como una consulta de primer paso para filtrar características irrelevantes antes de comparar geometrías individuales, lo que consume más tiempo. Estos también se implementan en bases de datos NoSQL como MongoDB .
- Consultas espaciales basadas en la teoría de grafos . Estos tipos de consulta se implementan en SIG a través de herramientas como Network Analyst , y nuevamente en un nivel bajo son algoritmos .
- Consultas espaciales basadas en cuadrículas de trama y teoría de conjuntos (y teoría de conjuntos difusa ).
Hay algunas implementaciones que combinan lo anterior, como StarSpan que combina consultas de ráster y de vectores, aunque realmente oculta un paso de preprocesamiento.
Existen numerosas API que implementan este tipo de consultas que son legibles tanto por máquina como por texto. Hay una buena discusión sobre las distintas aplicaciones y sus problemas aquí .
El documento Towards a 3d Spatial Query Language divide los operadores espaciales en 4 tipos, en función de la consulta en lugar del tipo de datos (lo que quizás tenga más sentido):
- operadores direccionales (como arriba, abajo, norte de, sur de)
- operadores topológicos (como tocar, contener, igual, dentro)
- operadores métricos (como la distancia)
- Operadores booleanos (como unión, intersección)
También trae terminología para tratar con características 3D (cuerpo y superficie), que no están incluidas en DE-I9M.