openstreetmap部署瓦片服务

openstreetmap由于国内被墙的问题,访问会卡顿或者异常,这时候部署一个私有服务是一个不错的选择。

 

  1. 部署环境 Ubuntu2204,根据自己所选的区域决定磁盘大小,我这里导入的是全球数据,所以建议2TB左右磁盘大小
  2. 先去openstreetmap官网下载全球PBF数据,Planet OSM ,


  3. 如果仅仅只是想使用某个区域的地图,可以在这里下载 Geofabrik Download Server

  4. 准备工作完成后就可以开始操作了,首先要注意的一点是,如果你的磁盘做了分区,一定要先指定docker的data-root目录,防止你的数据没有下载到你指定的磁盘
    编辑或创建 /etc/docker/daemon.json 文件

    {
    "data-root": 指定docker的存储位置
    }

  5. 使用screen新建一个虚拟窗口,因为执行导入的时候非常慢,防止ssh断开的时候任务中断,建议使用虚拟窗口
  6. 执行命令
    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

    最大线程数量

  7. 等待执行,期间需要非常多的时间和磁盘,一定要注意,大概进度如下
    Processing: Node(9781887k ) Way(1090556k ) Relation(13004650 )
  8. 执行完成后启动服务
    docker run \
        -p 8080:80 \
        -v osm-data:/data/database/ \
        -d overv/openstreetmap-tile-server \
        run

     

posted @ 2025-06-05 11:07  rht  阅读(227)  评论(0)    收藏  举报