【问题标题】:CLI to generate map tiles from osm file (open street map)?CLI 从 osm 文件生成地图图块(打开街道地图)?
【发布时间】:2012-07-31 15:28:43
【问题描述】:
我尝试使用Maperitive 从 osm 文件生成地图图像图块。但这个过程既慢又难以自动化。
我在看一些工具可以做这样的事情:
mapgen planet.osm lv1-10 lat0 lon0 lat1 lon1 [some other rendering options]
在哪里
- planet.osm 是开放的街道地图格式文件。
- lv1-10 是缩放级别
- lat0 lon0 lat1 lon1 是地理坐标。
输出到一个文件夹包含数千个 png tile 文件。谢谢
【问题讨论】:
标签:
linux
gps
openstreetmap
【解决方案1】:
根据您的示例命令行,我猜您正在尝试使用整个星球数据 (planet.osm) 进行渲染。这在 Maperitive 中是不可行的,因为它需要在渲染之前将整个 OSM 文件加载到内存中(即使您只指定了一个小的边界框)。
为大区域(整个国家、大陆或地球)渲染图块的唯一真正方法是将 OSM 数据填充到 PostGIS 数据库中,然后使用 Mapnik 进行渲染。
或者,您可以先使用 osmosis 之类的工具将 planet.osm 切割成一个小文件,但这也需要很长时间。
还要注意以下事项 (quoting myself):
在指定缩放级别时要小心。每个缩放级别需要大约
瓷砖数量是前一个瓷砖的四倍,因此您可以非常快速
达到相当多的瓷砖,这可能需要很长时间
生成并需要大量磁盘空间。
假设我们有一张缩放级别为 10 的地图大致覆盖了整个地图
电脑屏幕(这大约是伦敦和
其周围环境)。这意味着大约 15 个图块用于缩放
10级。如果我们想为整个地图生成图块会发生什么
最高缩放级别 19?
- 缩放级别 11:60 个图块
- 缩放级别 12:240 块
- 缩放级别 13:960> 块
- ...
- 缩放级别 17:245,760 个图块(cca. 80 分钟的工作,cca.> 10 GB 磁盘空间)
- 缩放级别 18:983,040 个图块(超过 5 小时的工作,大约 40 GB 的磁盘空间)
- 缩放级别 19:3,932,160 个图块(几乎是一整天的工作,大约 160 GB 的磁盘空间)
【解决方案2】:
我不知道已经存在任何此类工具。您可以轻松地调整各种项目用于生成地图图块的众多脚本之一——其中大多数使用Mapnik。看看这个Mapnik demo——它有据可查,应该相对容易适应。
请注意,您需要为渲染提供额外的参数(在命令行或脚本本身中)——最值得注意的是告诉 Mapnik 如何渲染数据的样式文件。