如何使用上Matplotlib底图OpenStreetMap的背景

问题描述 投票:6回答:3

这应该是简单的,但是当我看到它我只是觉得网络包。我需要的东西比This Blog为导向较好。也许使用.oms文件或shape文件。一些办法给BBOX并获得Basemap地图OpenStreetMap的背景。

我发现栈像这样一些问题,但答案引导到,或下载OpenStreetMap的网站.png文件,或者使用一些网络包。

python-2.7 gis openstreetmap matplotlib-basemap
3个回答
9
投票

我建议不要尝试,使一些工作,这是没有作出(还)一起工作。有一个简单的方法来实现你想要什么Mplleaflet。 https://github.com/jwass/mplleaflet库让用户可以直观上一个美丽的互动OpenStreetMap的地理数据。自动执行长纬度格式的数据的地图投影。

安装在Windows和Ubuntu很简单:

pip install mplleaflet

您可以与提供的例子入手,并从那里走。


5
投票

有许多图书馆今天可以为你做到这一点 - smopyfoliumtilemapbase从我最近用三个例子。

这些工具获取从几个服务器的一个主机OSM或其他(雄蕊,卡托等)地图图块,然后允许您显示,并使用matplotlib对他们的阴谋地图图块。 Tilemapbase也是本地缓存的瓷砖,使他们不会再次获取下一次。

但似乎没有成为一个现成的工具,但是,根据我最近的经验,以供离线使用tilesets(如压缩.mbtiles文件)作为背景matplotlib绘制。

此链接中包含的上述工具和更多的调查 - https://github.com/ispmarin/maps

编辑

我曾在我以前的答复提到,Tilemapbase没有为世界上一些地理位置的工作,因此明确建议不使用它。但事实证明我错了,我为此道歉。实际上,它的伟大工程!在我的情况的问题是尴尬简单 - 我已经颠倒了顺序或纬度和经度,同时取砖,因此它总是获取空白砖某些地理位置,导致我认为它并没有为这些场所工作。

我曾提出在GitHub上的问题,并立即由开发商解决。看到这里 - https://github.com/MatthewDaws/TileMapBase/issues/7

需要注意的答复:

坐标是为了(1)经度将被提供,(2)北纬。如果您从谷歌地图复制他们,他们将在经/纬度顺序,你必须将它们翻转。所以,你的地图图像不是空的,它是在海洋挪威北部只是一个位置。

而从开发者自己:

是的,当我写的代码,它似乎是有没有订货的通用标准。所以,我选择了一个这是谷歌地图的不同。方法名from_lonlat应该给一个提示,正确的顺序...


3
投票

您可以自己从tile servers的一个下载必要的瓷砖。 OSM的维基解释背后slippy map tilenames的技术细节,也包括针对不同编程语言和脚本语言的例子。

也请阅读有关tile usage policy并记住不同的瓷砖可以发球有不同的政策。

© www.soinside.com 2019 - 2024. All rights reserved.