Я можу думати лише про 3 типи просторових запитів, ігноруючи будь-які запити на основі атрибутів чи хешів.
Просторові запити, засновані на геометрії, використовуються для пошуку зв’язків між векторними ознаками. Просторові запити SQL насправді є лише алорітмами низького рівня API, такими як Bentley-Ottmann - використовуються в OpenLayers для перевірки, чи перетинаються дві лінії.
Як згадував Кірк, типи взаємозв'язку між ознаками стандартизовані за розмірною моделлю дев'яти перетину :
- Дорівнює
- Непересічні
- Перетинає
- Торкається (зустрічається)
- Хрести
- Всередині (всередині)
- Містить
- Перекриття
- Обкладинки
- Вкритий
Можна стверджувати, що просторові запити на основі індексів є спрощеною формою геометричних запитів. Більшість запитів геометрії використовують просторовий індекс як запит першого проходу для фільтрації невідповідних функцій перед порівнянням окремих геометрій, що забирає більше часу. Вони також реалізовані в базах даних NoSQL, таких як MongoDB .
- Просторові запити, засновані на теорії графів . Ці типи запитів реалізуються в ГІС за допомогою таких інструментів, як Network Analyst , і знову на низькому рівні - алгоритми .
- Просторові запити, засновані на растрових сітках та теорії множин (та теорії нечітких множин ).
Є кілька реалізацій, які поєднують у собі вищезазначене, наприклад StarSpan, який поєднує растрові та векторні запити - хоча це дійсно приховує крок попередньої обробки.
Існує чимало API, які реалізують такі типи запитів, які читаються як в машині, так і в тексті. Там хороша дискусія про різні реалізаціях і їхні проблеми тут .
У статті До мови просторового простору запитів розбиваються просторові оператори на 4 типи, виходячи із запиту, а не типу даних (що, можливо, має більше сенсу):
- оператори спрямованості (такі як вище, внизу, northOf, southOf)
- топологічні оператори (такі як дотик, містять, рівні, всередині)
- метричні оператори (наприклад, відстань)
- Булові оператори (такі як об'єднання, перехрестя)
Він також пропонує термінологію для обробки 3d-функцій (корпусу та поверхні), які не входять до DE-I9M.