用于地理定位的Wikipedia API

时间:2010-11-16 04:13:43

标签: geolocation wikipedia wikipedia-api

是否有可能使用现有的维基百科API获取围绕地理位置的文章列表?有点像谷歌地图吗?

我想说我“在这里”并在维基百科上找出我身边的东西。

我可以看到像this这样的文章你可以在右侧看到“坐标”,所以我想对这些坐标进行查询......

有什么想法吗?

8 个答案:

答案 0 :(得分:18)

更新的答案
Wikilocation已退役,现在有OFFICIAL WIKIPEDIA API

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

HTML example | JSON Example

答案 1 :(得分:15)

请勿重新发明轮子,请使用DBpedia 带有“lat”和“lon”数据extracted的示例页面 可以使用SPARQL查询它。

答案 2 :(得分:10)

查看Wikilocation,可能会有用。

答案 3 :(得分:8)

现在通过Special:Nearby将其纳入维基百科。

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

答案 4 :(得分:5)

似乎没有维基百科API,但this Wikipedia page描述了其他人如何使用这些信息:

  

所有坐标均可用   在维基百科数据库转储中下载。   从XML获取坐标   格式转储所有文章   (enwiki-最新的页面,articles.xml.bz2,   4 GB),需要解析转储   包含坐标的页面   上面列出的输入格式。最   维基百科的文章符合这些   格式和坐标很容易   定期从wikitext解析   简单字符的表达式   序列。所有坐标都链接到   同样的PHP工具,它们也可能是   从SQL格式表中找到   外部链接   (enwiki - 最新-externallinks.sql.gz,   725MB)。第二种方法会   但不包括所有可用的   有关坐标的信息,   比如他们之间的位置   文章正文和标题区。

答案 5 :(得分:4)

解决方案jquery和geonames API:

a,b =经度,纬度,推文 - &gt; 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>');
            }
        }); 
    }); 
}

答案 6 :(得分:1)

DBpedia和SPARQL不是很好的选择,至少不适用于德语维基百科:覆盖范围太小。

我正在尝试自己解析所有不同的地理坐标格式(来自转储),但这很难,因为实际上有很多不同的变体。

答案 7 :(得分:1)

我知道,这是一个老问题,但这是类似查询的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。