Википедия - это геотаггинг a лот из ее статей . (Посмотрите в верхнем правом углу страницы.)
Есть ли API для запроса всех страниц с геотегами в пределах указанного радиуса географического положения?
Обновление
Ладно, поэтому, основываясь на ответе утерянной теории, я попробовал это (на Исследователь запросов DBpedia ):
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT ?subject ?label ?lat ?long WHERE {
?subject geo:lat ?lat.
?subject geo:long ?long.
?subject rdfs:label ?label.
FILTER(xsd:float(?lat) - 57.03185 <= 0.05 && 57.03185 - xsd:float(?lat) <= 0.05
&& xsd:float(?long) - 9.94513 <= 0.05 && 9.94513 - xsd:float(?long) <= 0.05
&& lang(?label) = "en"
).
} LIMIT 20
Это очень близко к тому, что я хочу, за исключением того, что оно возвращает результаты в пределах квадрата ( local ) вокруг точки, а не в виде круга. Также хотелось бы, чтобы результаты были отсортированы по расстоянию от точки. (Если возможно.)
Обновление 2
Я пытаюсь определить евклидово расстояние как приближение к истинному расстоянию, но у меня возникают проблемы с возведением в квадрат числа в SPARQL. ( Вопрос открыт здесь .) Когда я получу что-то полезное, я обновлю вопрос, но пока я буду признателен за любые предложения по альтернативным подходам.
Обновление 3
Окончательное обновление. Я отказался от использования SPARQL через DBpedia. Я написал простой парсер, который извлекает ночной дамп базы данных из статьи Википедии и анализирует все статьи на предмет геокодов. Он работает довольно хорошо и позволяет мне хранить информацию о статьях с геотегами, как я хочу.
Вероятно, это решение, которое я продолжу использовать, и если мне удастся создать хороший интерфейс к нему, я мог бы рассмотреть возможность предоставления доступа к общедоступному API и / или публикации исходного кода для анализатора.