【问题标题】:Drawing upon openstreetmap in python在python中使用openstreetmap
【发布时间】:2012-07-05 20:41:59
【问题描述】:

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

Mathplotlib 和 Basemap 几乎就是我想要的。问题是能够使用 OSM 瓷砖作为背景。我对http://stevendkay.wordpress.com/2010/02/24/plotting-points-on-an-openstreetmap-export/

中建议的方法不满意

我找到的最接近的答案是在这个答案中,但使用的是 R,而不是 python Plotting points from a data.frame using OpenStreetMap

我是否错过了任何明显且简单的解决方案?

感谢您的帮助

编辑:这个问题建议了很多工具,但似乎没有一个符合我的需求How can I display OSM tiles using Python?

【问题讨论】:

    标签: python matplotlib openstreetmap


    【解决方案1】:

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

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

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

    【讨论】:

    • 这是我粘贴的第一个链接使用的解决方案。我想生成大约一百张图片,所以手工制作非常麻烦(但是使用的带宽会比浏览地图时慢得多,所以这里应该没有任何问题)
    • @TristramGräbener 我和你的兴趣相似,但使用其他瓷砖来源。为了不使带宽过载,我创建了一个缓存数据的“切片服务器”。因此,当我询问“服务器”(这是我在 Python 中创建的 TileServer 类的一个实例)时,它会自行查找图像(self.image_dict),否则它会从磁盘读取对应的图像(Image.open( )),否则它会下载并保存文件 (urllib.urlretrieve())。希望这个想法有所帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多