Tôi chỉ có thể nghĩ về 3 loại truy vấn không gian, bỏ qua mọi truy vấn dựa trên thuộc tính hoặc hàm băm.
Các truy vấn không gian dựa trên hình học và được sử dụng để tìm mối quan hệ giữa các tính năng vectơ. Các truy vấn không gian SQL thực sự chỉ là một thuật ngữ cấp thấp API như Bentley-Ottmann - được sử dụng trong OpenLayers để kiểm tra xem hai dòng có giao nhau không.
Như Kirk đã đề cập, các loại mối quan hệ giữa các tính năng đã được chuẩn hóa trên mô hình chín giao điểm mở rộng theo chiều :
- Bằng
- Phân chia
- Giao lộ
- Chạm (gặp)
- Thánh giá
- Bên trong)
- Chứa đựng
- Chồng chéo
- Bao gồm
- Được bao phủ bởi
Có thể lập luận rằng các truy vấn không gian dựa trên các chỉ mục là một dạng truy vấn hình học đơn giản hóa. Hầu hết các truy vấn hình học sử dụng chỉ mục không gian làm truy vấn vượt qua đầu tiên để lọc ra các tính năng không liên quan trước khi so sánh các hình học riêng lẻ tốn nhiều thời gian hơn. Những điều này cũng được triển khai trong cơ sở dữ liệu NoQuery như MongoDB .
- Các truy vấn không gian dựa trên lý thuyết đồ thị . Các loại truy vấn này được triển khai trong GIS thông qua các công cụ như Phân tích mạng và một lần nữa ở mức độ thấp là các thuật toán .
- Các truy vấn không gian dựa trên lưới raster và lý thuyết tập hợp (và lý thuyết tập mờ ).
Có một vài triển khai kết hợp ở trên, chẳng hạn như StarSpan kết hợp các truy vấn raster và vector - mặc dù nó thực sự ẩn một bước tiền xử lý.
Có rất nhiều API triển khai các loại truy vấn này có thể đọc được cả máy và văn bản. Có một cuộc thảo luận tốt về các triển khai khác nhau và các vấn đề của họ ở đây .
Bài viết Hướng tới Ngôn ngữ truy vấn không gian 3d chia các toán tử không gian thành 4 loại, dựa trên truy vấn thay vì kiểu dữ liệu (có lẽ có ý nghĩa hơn):
- toán tử định hướng (như trên, dưới, NorthOf, southOf)
- toán tử tôpô (như chạm, chứa, bằng, bên trong)
- toán tử số liệu (như khoảng cách)
- Toán tử Boolean (như liên minh, ngã tư)
Nó cũng mang đến thuật ngữ để xử lý các tính năng 3d (cơ thể và bề mặt), không được bao gồm trong DE-I9M.