对于我的项目,我需要列出City内许多有趣的地方。例如在柏林维基百科页面https://en.wikipedia.org/wiki/Berlin中有许多有趣的地方链接,如柏林国家歌剧院链接https://en.wikipedia.org/wiki/Berlin_State_Opera,柏林动物园,链接https://en.wikipedia.org/wiki/Berlin_Zoological_Garden等等。所有这些地方都有坐在右上角的坐标,如坐标52°30'30“N 13°20'15”ECoordinates:52°30'30“N 13°20'15”E。所以我想做什么,我想只获得维基百科文章中包含坐标信息的链接。好吧,我已经阅读了一些文章但是有任何api来提取包含地理坐标信息的链接。所以我想获得包含Geoinformation的所有地方链接的方法是什么。
答案 0 :(得分:1)
维基百科有一个很好的Geo Search API,可以让您搜索附近的页面:
{
"batchcomplete": "",
"query": {
"geosearch": [
...
{
"pageid": 391156,
"ns": 0,
"title": "Berlin State Opera",
"lat": 52.516666666667,
"lon": 13.395,
"dist": 789.4,
"primary": "",
"type": "landmark",
"name": "",
"dim": 1000,
"country": "DE",
"region": "BE"
},
...
{
"pageid": 1005900,
"ns": 0,
"title": "Berlin Zoological Garden",
"lat": 52.508333333333,
"lon": 13.3375,
"dist": 3237.1,
"primary": "",
"type": "landmark",
"name": "",
"dim": 500,
"country": "DE",
"region": "BE"
},
...
您可以使用gspage
使用任何维基百科文章with geographic coordinates的标题进行搜索。您会看到一些地理标记的历史事件,地标和其他功能,因此您可以添加gsprop=type
来添加属性,以帮助您过滤您不感兴趣的文章。
一些注意事项:
API(目前)只能返回最多500个项目,这些项目位于您正在搜索的点的10,000米半径范围内。如果你没有得到你想要的一切,你可能想尝试一系列更窄的搜索或使用一个小的边界框(带有gsbbox
参数)。
维基百科的每种语言都有自己的API端点。您可以尝试same query on the German language Wikipedia,但可能会看到略有不同的结果。
维基数据使用SPARQL interface跨语言提供大量数据,但不支持地理坐标搜索(yet)。有一天,您可以使用维基数据根据其位置查找项目(P625)。
答案 1 :(得分:0)
您可以使用API获取每个链接页面获取坐标。然后,您可以忽略所有没有任何坐标的链接页面来处理它。
查询如下所示:
请注意,链接页面包含与柏林完全无关的页面,例如Aachen。
更好的方法可能是搜索坐标靠近柏林某一点的页面。