Википедия API для геолокации - PullRequest
30 голосов
/ 16 ноября 2010

Возможно ли, используя существующие API Википедии, получить список статей о географическом местоположении? Вроде как, как Google Maps это делает?

Я бы хотел сказать, что я «здесь» и узнать, что меня окружает в Википедии.

Я могу видеть в статьях типа this вы можете видеть "Координаты" справа, поэтому я хотел бы сделать запрос по этим координатам ...

есть мысли?

Ответы [ 8 ]

18 голосов
/ 23 декабря 2014

ОБНОВЛЕННЫЙ ОТВЕТ :
Wikilocation удален и теперь существует ОФИЦИАЛЬНЫЙ API ВИКИПЕДИИ

? action=query
& list=geosearch
& gsradius=<radius-in-meters>
& gscoord=<lat>|<lon>

Пример HTML | Пример JSON

15 голосов
/ 18 ноября 2010

Не изобретайте колесо, используйте DBpedia .
Пример страницы с данными "lat" и "lon" извлечено .
И к нему можно обратиться SPARQL .

10 голосов
/ 24 марта 2012

Взгляните на Wikilocation , может быть полезно.

8 голосов
/ 19 июля 2014

Это в настоящее время встроено в Википедию через Special: Nearby.

https://en.wikipedia.org/wiki/Special:Nearby

5 голосов
/ 16 ноября 2010

Кажется, что для этого нет API Википедии, но эта страница Википедии описывает, как другие используют эту информацию:

Все координаты доступны для скачивания в Википедиидампы базы данных.Чтобы получить координаты из дампа формата XML всех статей (enwiki-latest-pages-article.xml.bz2, 4 ГБ), необходимо проанализировать дамп для страниц, содержащих координаты, в форматах ввода, перечисленных выше.Большинство статей в Википедии соответствуют этим форматам, а координаты легко анализировать из викистекста с помощью регулярных выражений для простых последовательностей символов.Поскольку все координаты связаны с одним и тем же инструментом PHP, их также можно найти в таблице внешних ссылок в формате SQL (enwiki-latest-externallinks.sql.gz, 725MB).Однако этот второй метод не будет включать всю доступную информацию о координатах, например их положение между телом статьи и областью заголовка.

4 голосов
/ 19 февраля 2012

Решение jquery и geonames API:

a, b = долгота, широта, твит -> html div

function getcontent(a,b) {
    jQuery(function($) {
        $.getJSON('http://api.geonames.org/findNearbyWikipediaJSON?formatted=true&lat='+ a +'&lng='+ b +'&username=username&style=full&lang=de&wikipediaUrl&thumbnailImg', function(json) {
            for(var i = 0; i < json.geonames.length; i++) {
                $("#tweet").prepend('<span style="font-family: geneva, arial, helvetica, sans-serif;"><br><br><img src="wikilogo.gif"><br>' + json.geonames[i].summary + '<br><a href="http://'+ json.geonames[i].wikipediaUrl +'" target="_blank">'+ json.geonames[i].wikipediaUrl +'</a><br></span>');
            }
        }); 
    }); 
}
1 голос
/ 23 января 2019

Я знаю, это старый вопрос, но вот формат URL для аналогичного запроса:

https://en.wikipedia.org/w/api.php?action=query&list=geosearch&format=json&gscoord=40.418670|-3.699389&gsradius=10000&gslimit=10

после &gscoord= вы должны поместить координаты, разделенные |, а после &gsradius= радиус поиска в метрах, gslimit - максимальное количество записей в ответе.

Ответ содержит JSON.

1 голос
/ 04 сентября 2012

DBpedia и SPARQL не являются хорошими вариантами, по крайней мере, не для немецкой Википедии: охват слишком мал.

Я сейчас пытаюсь самостоятельно проанализировать все разные форматы гео-координат (из дампов), но это довольно сложно, так как вариантов действительно много.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...