SPARQL Фильтр по расстоянию
Учитывая некоторые Здания с их соответствующими местоположениями (широта и долгота), как я могу получить только те в пределах определенного расстояния?
Допустим, у меня есть человек building0
находится в определенном месте.
ont1:building0 rdf:type ont1:Building
ont1:building0 pos:lat 43.22
ont1:building0 pos:lon -6.45
И я хочу вернуть все остальные здания ближе к 10 км.
Позволяет ли SPARQL это как-то запрашивать?? Или хотя бы показать, какое расстояние до других зданий?
заранее спасибо
1 ответ
Решение
Существует формула для расчета расстояния на основе широт и долгот: http://andrew.hedges.name/experiments/haversine/
Но SPARQL не поддерживает тригонометрические функции.
GeoSPARQL имеет функцию goof:distance для вычисления расстояния между двумя геометрическими точками (если вы можете использовать GeoSPARQL)