2016-10-12 191 views
1

我必须做一个内部地图的网络界面...这张地图应该从维基百科数据库中获取某个地点/城市/或其他地方的坐标。 我看了一些关于MediaWiki api的内容,但是我无法理解如何使用它。 这时,我发现这个代码,以维基百科文本,并把它放在一个div:如何从MediaWiki获取坐标

$.ajax({ 
    type: "GET", 
    url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Rome&callback=?", 

    contentType: "application/json; charset=utf-8", 
    async: false, 
    dataType: "json", 
    success: function (data, textStatus, jqXHR) { 
     var markup = data.parse.text["*"]; 
     var blurb = $('<div></div>').html(markup); 
     $('#list').html($(blurb).find('p')); 

    }, 
    error: function (errorMessage) { 
    } 
}); 

所以我必须要改变的URL请求,但我不明白如何。 谢谢

回答

1

您应该能够使用Wikidata Query Service(WDS)从维基数据中获取坐标数据。

例如,following query(不是很测试)将返回关于东西叫做罗马有坐标的一些信息:

SELECT * WHERE { 
    ?place wdt:P625 ?location . 
    ?place rdfs:label ?label . 
    FILTER(LANG(?label) = "en") . 
    FILTER(STR(?label) = "Rome") . 
    ?article schema:about ?place . 
    ?article schema:inLanguage "en" . 
    ?article schema:isPartOf <https://en.wikipedia.org/> . 
} LIMIT 10 

你可以得到这个JSON表示通过URL:

https://query.wikidata.org/bigdata/namespace/wdq/sparql?query=<URL-encoded query here> 
+0

这个查询是完美的我的情况...但这是一个sparql查询,所以我怎么能插入它的HTML文件? – farso92

+0

我在底部给出的JSON网址可以用在你的'$ .ajax'调用中。当然,您必须修改处理响应的方式。 –