谷歌地图***层

Posted

技术标签:

【中文标题】谷歌地图***层【英文标题】:The Google Maps Wikipedia Layer 【发布时间】:2009-01-05 23:22:56 【问题描述】:

有没有办法以编程方式列出长/纬点半径内的所有地理标记的***条目?我认为这可以通过谷歌地图 API 实现,但我对任何方法都感兴趣。注意:我不想显示 googlemap。

【问题讨论】:

【参考方案1】:

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

(1) 屏幕抓取***(坏主意,除非您已经有一个(小)目标页面列表) (2) 下载并解析海量的Wikipedia data sets(更好的主意)

一旦你有了纬度/经度坐标,我假设它是 wiki 页面的地理标记格式,你可以使用 great circle formula 来计算相对距离,并完全绕过 Google 的 API。

这个故事的寓意是什么?当您处理如此庞大的数据集时,您会希望尽可能多地离线处理。

【讨论】:

【参考方案2】:

我使用GeoNames webservices 解决了一个稍微类似的问题。

您可以使用网络服务来请求城市等。您不能超过每个 ip 的限制。

我进一步搜索了一下,发现有一些对你来说很有趣的东西。该网络服务称为findNearByWikipedia。它可能是您正在寻找的东西......

【讨论】:

【参考方案3】:

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

SPARQL 库广泛可用,例如 SPARQL Endpoint interface to 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"

【讨论】:

以上是关于谷歌地图***层的主要内容,如果未能解决你的问题,请参考以下文章

怎么使用谷歌地图

为啥手机上不能用谷歌地图

谷歌地图怎么测距离?

谷歌地图下载器可以下载矢量路网吗?

苹果手机的谷歌地图怎么删除

如何使用Openlayer发布谷歌卫星地图