在python中使用openstreetmap

Tri*_*ner 12 python matplotlib openstreetmap

我想要做的是使用python生成静态图像(例如png)并使用openstreetmap tile作为背景.

Mathplotlib和Basemap几乎就是我想要的.问题是能够使用OSM图块作为背景.我对http://stevendkay.wordpress.com/2010/02/24/plotting-points-on-an-openstreetmap-export/中建议的方法感到不满意

我找到的最接近的是这个答案,但是使用R,而不是python 使用OpenStreetMap从data.frame绘制点

我错过了任何明显而简单的解决方案吗?

谢谢你的帮助

编辑:这个问题提出了许多工具,但似乎没有一个符合我的需求如何使用Python显示OSM图块?

小智 2

您忽略了 OSM 网站上的“导出”选项卡,该选项卡能够生成具有所需尺寸和地图范围的静态图像。看看http://wiki.openstreetmap.org/wiki/Export

请注意,生成静态图像是一个资源密集型过程,如果您发出大量请求或滥用此功能,OSM 系统管理员将会对您皱眉。不幸的是,这意味着如果您尝试处理大量图像,则必须找到其他解决方案。

顺便说一句,您在顶部绘制的数据已正确投影到 EPSG:3857 而不仅仅是原始纬度/经度坐标,对吧?原始纬度/经度数据在大缩放级别下看起来会失真。

  • @TristramGräbener 我和你有相似的兴趣,但使用其他图块源。为了不使带宽过载,我创建了一个缓存数据的“平铺服务器”。因此,当我询问“服务器”(这是我在 Python 中创建的 TileServer 类的实例)时,它会在自身中查找图像 (self.image_dict),否则它会从磁盘读取相应的图像 (Image.open( )),否则它会下载并保存文件 (urllib.urlretrieve())。希望这个想法有帮助! (2认同)