CLI从osm文件生成地图图块(打开街道地图)?

问题描述:

我试图使用Maperitive从osm文件生成地图图像拼贴。但是这个过程既慢又难以自动化。CLI从osm文件生成地图图块(打开街道地图)?

我看一些工具可以做这样的事情:

mapgen planet.osm lv1-10 lat0 lon0 lat1 lon1 [some other rendering options] 

其中

  • planet.osm是开放街道地图格式的文件。
  • lv1-10是缩放级别
  • lat0 lon0 lat1 lon1是地理坐标。

并输出到一个文件夹包含数以千计的PNG瓦片文件。谢谢

我不知道任何这样的工具已经存在。您可以轻松地调整各种项目用于生成地图图块的多个脚本之一 - 其中大多数使用Mapnik。看看这个Mapnik demo - 这是有据可查的,应该相对容易适应。

请注意,您需要为渲染提供额外的参数(无论是在命令行还是在脚本本身中) - 最显着的一个样式文件告诉Mapnik如何渲染数据。

根据您的示例命令行,我猜你正在尝试使用整个星球数据(planet.osm)进行渲染。这在Maperitive中不可行,因为它需要在渲染之前将整个OSM文件加载到内存中(即使您只指定了一个小边界框)。

为大面积(整个国家,大陆或地球)渲染瓷砖的唯一方法是将OSM数据填充到PostGIS数据库中,然后使用Mapnik进行渲染。

或者,您可以先使用渗透等工具将planet.osm剪切成小文件,但这也需要很长时间。

另外要注意以下事情(quoting myself):

指定缩放级别时要小心。每个缩放级别需要大约 ,比前一个要多4倍,所以你可以很快地将 达到相当大数量的tile,这可能需要很长时间才能生成,并且需要大量的磁盘空间。

比方说,我们有一张地图,在缩放级别10大致覆盖整个 电脑屏幕(这将大约是伦敦地区和 其周围环境)。这意味着等级为10的缩放 约有15个瓦片。如果我们要为整个地图 生成瓦片直到缩放级别19,会发生什么情况?

  • 缩放级别11:60瓦
  • 缩放级别12:240瓦
  • 缩放级别13:960>瓦片
  • ...
  • 缩放级别17:245760瓦片(CCA。80分钟的工作,cca。> 10 GB的磁盘空间)
  • 放大等级18:983,040瓷砖(超过5小时的工作,cca。40 GB的磁盘空间)
  • 放大等级19:3,932,160瓷砖(几乎一整天的工作,160卡的磁盘空间)