运行 离线 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/
我正在尝试 运行 我的服务器上的 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/