运行 离线 OpenStreetMaps 的分步说明

Step by step instruction to run offline OpenStreetMaps

我正在尝试 运行 我的服务器上的 OpenStreetMaps 离线版本。

我有一个显示 OSM 地图的 ASP.NET MVC 应用程序。 到目前为止,我 运行 来自 OpenLayers 的快速入门示例。

var map = new ol.Map({
    target: 'map',
    layers: [
        new ol.layer.Tile({
            source: new ol.source.OSM()
        })
    ],
    view: new ol.View({
        center: ol.proj.fromLonLat([
            37.41, 
             8.82
        ]),
        zoom: 4
    })
});

问题是我需要所有的东西都离线。我已经下载了 planet-latest.osm.bz2 文件,但我不知道下一步是什么。

我读到我现在必须从 osm 文件渲染图块,对吗?我尝试使用 Mapnik/Maperetive 来实现这一点,但并不顺利。 我也不知道如何将所有这些东西连接在一起。

@EDIT1 我是否必须在使用前渲染所有图块(大约 20TB)或者我可以按需渲染图块(当有人使用地图时)?

我将为您澄清几个不同的术语:

  • OpenStreetMap 提供道路、建筑物、海洋等位置的原始数据
  • Mapnik 是众多磁贴服务器之一
  • Tile 服务器 需要原始数据、tile 样式和生成图像(通常)
  • 平铺样式 通常是 XML,您可以使用 CartoCSS 和 TileMill
  • 等工具生成这些样式
  • CartoCSS 类似于 web CSS,但略有修改以在映射上下文中更有意义
  • TileMill 是编写和预览 CartoCSS
  • 的众多工具之一

以上信息对您来说可能不需要,因为 Open Tile Server 有一些合理的默认设置,可能是您查看的最佳位置:https://opentileserver.org/