openstreetmap部署瓦片服务
openstreetmap由于国内被墙的问题,访问会卡顿或者异常,这时候部署一个私有服务是一个不错的选择。
- 部署环境 Ubuntu2204,根据自己所选的区域决定磁盘大小,我这里导入的是全球数据,所以建议2TB左右磁盘大小
- 先去openstreetmap官网下载全球PBF数据,Planet OSM ,
![]()
- 如果仅仅只是想使用某个区域的地图,可以在这里下载 Geofabrik Download Server
![]()
- 准备工作完成后就可以开始操作了,首先要注意的一点是,如果你的磁盘做了分区,一定要先指定docker的data-root目录,防止你的数据没有下载到你指定的磁盘
编辑或创建/etc/docker/daemon.json文件
{
"data-root": 指定docker的存储位置
} - 使用screen新建一个虚拟窗口,因为执行导入的时候非常慢,防止ssh断开的时候任务中断,建议使用虚拟窗口
- 执行命令
docker run -e UPDATES=disabled -e THREADS=24 -e "OSM2PGSQL_EXTRA_ARGS=-C 4096" -e "FLAT_NODES=enabled" -v /mnt/data/osm/openstreetmap-website/planet-250317.osm.pbf:/data/region.osm.pbf -v osm-data:/data/database/ overv/openstreetmap-tile-server import
/mnt/data/osm/openstreetmap-website/planet-250317.osm.pbf替换为你之前下载的pdf路径
其他参数解释如下
UPDATES=disabled
关闭自动更新
FLAT_NODES=enabled
开启osm2pgsql
OSM2PGSQL_EXTRA_ARGS=-C 4096
最大缓存
THREADS=24
最大线程数量
- 等待执行,期间需要非常多的时间和磁盘,一定要注意,大概进度如下
Processing: Node(9781887k ) Way(1090556k ) Relation(13004650 ) - 执行完成后启动服务
docker run \ -p 8080:80 \ -v osm-data:/data/database/ \ -d overv/openstreetmap-tile-server \ run



浙公网安备 33010602011771号