繁体   English   中英

Google Maps Wikipedia图层

[英]The Google Maps Wikipedia Layer

有没有办法以编程方式列出长/纬度半径内所有带有地理标签的Wikipedia条目? 我认为使用Google Maps API可以实现,但我对任何方法都感兴趣。 注意:我不想显示googlemap。

是的,有可能。 困难的部分是:

(1)屏幕抓取的Wikipedia(不好的主意,除非您已经有(较小的)目标页面列表)
(2)下载并解析大量Wikipedia数据集 (更好的主意)

一旦有了纬度/经度坐标(我认为该坐标是Wiki页面的geotag格式),就可以使用大圆公式计算相对距离,并完全绕过Google的API。

这个故事的寓意? 当您处理如此庞大的数据集时,您将需要尽可能多地离线进行处理。

我已经通过使用GeoNames webservices解决了一个稍微相似的问题。

您可以使用Web服务来请求城市等等。 每个IP限制都不能超过。

我进行了进一步搜索,您会发现一些有趣的东西。 该Web服务称为findNearByWikipedia 可能是您要寻找的东西...

另一个选择是使用DbPedia SPARQL接口。 例如,以下SPARQL查询将在受坐标限制的边界框中获取Wikipedia文章。

SPARQL库广泛可用,例如用于SPARQL Endpoint与Python的接口

要对其进行测试,只需将以下查询粘贴到此在线查询编辑器中:

http://dbpedia.org/sparql

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> 
PREFIX onto: <http://dbpedia.org/ontology/> 

SELECT * WHERE {
?s a onto:Place .
?s geo:lat ?lat .
?s geo:long ?long .
FILTER ( ?long > 30.3 && ?long < 30.5 && ?lat > 50.4 && ?lat < 50.5)
} 

LIMIT 100

得到以下结果:

"s","lat","long"
"http://dbpedia.org/resource/Kotsiubynske","50.48972320556641","30.32888793945312"
"http://dbpedia.org/resource/Akademmistechko_%28Kiev_Metro%29","50.46555709838867","30.35499954223633"
"http://dbpedia.org/resource/Zhytomyrska_%28Kiev_Metro%29","50.45583343505859","30.36416625976562"
"http://dbpedia.org/resource/Sviatoshyn_Airfield","50.47833251953125","30.38500022888184"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM