Solo puedo pensar en 3 tipos de consultas espaciales, ignorando cualquier atributo o consultas basadas en hash.
-
Las consultas espaciales basadas en geometría, y se utilizan para encontrar las relaciones entre las entidades vectoriales. Las consultas espaciales de SQL son en realidad solo una API de bajo nivel alogoritmos como Bentley-Ottmann - utilizado en OpenLayers para verificar si dos líneas se intersecan.
Como Kirk mencionó, los tipos de relación entre las funciones se han estandarizado en el modelo de nueve intersecciones dimensionalmente extendido :
- es igual
- Disjoint
- Intersects
- Toca (se encuentra)
- cruces
- Dentro (dentro)
- Contiene
- superposiciones
- Cubiertas
- CoveredBy
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 utilizan un índice espacial como una consulta de primer paso para filtrar entidades irrelevantes antes de comparar geometrías individuales, lo que requiere más tiempo. Estos también se implementan en las bases de datos NoSQL como MongoDB .
- Consultas espaciales basadas en teoría de gráficos . Estos tipos de consultas se implementan en SIG a través de herramientas como Network Analyst , y nuevamente en un nivel bajo son los algoritmos .
- Consultas espaciales basadas en cuadrículas de trama y teoría de conjuntos (y teoría de conjuntos difusos ).
Hay algunas implementaciones que combinan lo anterior, como StarSpan que combina raster y Consultas vectoriales, aunque realmente esconde un paso de preprocesamiento.
Existen numerosas API que implementan este tipo de consultas que son legibles por máquina y por texto. Hay una buena discusión sobre diferentes implementaciones y sus problemas aquí .
El documento Hacia un lenguaje de consulta espacial 3d divide los operadores espaciales en 4 tipos, según la consulta en lugar del tipo de datos (lo que quizás tenga más sentido):
- operadores direccionales (como arriba, abajo, northOf, southOf)
- operadores topológicos (como toque, contenido, igual, interior)
- 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.