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)

Другие вопросы по тегам