【问题标题】:Wikipedia API for geolocations用于地理定位的维基百科 API
【发布时间】:2011-05-10 14:55:49
【问题描述】:

是否可以使用现有的 Wikipedia API 获取有关地理位置的文章列表?有点像谷歌地图是怎么做的?

我想说我在“这里”,并在 Wikipedia 上了解我周围的事物。

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

有什么想法吗?

【问题讨论】:

  • 您甚至可以使用 Google 地图的 API 从他们的 Wikipedia 图层中获取结果。
  • 刚刚发现这个:geonames.org/export/… 这可能对我有帮助...
  • @BennyJobigan 你能详细说明一下吗?

标签: geolocation wikipedia wikipedia-api


【解决方案1】:

似乎没有用于此的 Wikipedia API,但 this Wikipedia page 描述了其他人如何使用此信息:

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

【讨论】:

  • 感谢 Philipp,我确实设法获得了一些 DB 转储,很遗憾您必须走这条路。但就像我评论的那样,我现在可能只使用geonames.org/export/… 服务......
  • 坐标的解析实际上非常耗时,因为它们有几种不同的格式。有关格式的更多详细信息,请参阅en.wikipedia.org/wiki/Template:Coord
【解决方案2】:

不要重新发明轮子,使用DBpedia
带有“lat”和“lon”数据的示例页面extracted
并且可以通过SPARQL查询。

【讨论】:

  • 有趣,我什至不知道那个项目存在!谢谢 我会好好看看 :)
  • @jpatokal: 如何使用 dbpedia 解决 OP 贴出的问题?你能解释一下吗?
【解决方案3】:

解决 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>');
            }
        }); 
    }); 
}

【讨论】:

    【解决方案4】:

    看看Wikilocation,可能有用。

    【讨论】:

    【解决方案5】:

    DBpedia 和 SPARQL 不是很好的选择,至少对于德语维基百科来说不是:覆盖面太小。

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

    【讨论】:

      【解决方案6】:

      如今,这已通过 Special:Nearby 内置到 Wikipedia 中。

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

      【讨论】:

        【解决方案7】:

        更新答案
        Wikilocation 已停用,现在有一个OFFICIAL WIKIPEDIA API

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

        HTML example | JSON Example

        【讨论】:

          【解决方案8】:

          我知道,这是一个老问题,但这里是类似查询的 URL 格式:

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

          &amp;gscoord= 后面的坐标用| 隔开,&amp;gsradius= 后面的搜索半径以米为单位,gslimit 是响应的最大条目数。

          响应包含 JSON。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-10-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-02-12
            • 1970-01-01
            相关资源
            最近更新 更多