OpenStreetMap (简称 OSM) 系列(1 / 5) --- 搭建地图服务
创建相关目录
mkdir -p /var/www/html/osm/tile-server && cd /var/www/html/osm/tile-server && mkdir osm-data postgres tiles styletile-server 目录结构
├── docker-compose.yml
├── postgres/
├── osm-data/
├── tiles/
└── style/下载中国 OSM 数据
wget https://download.geofabrik.de/asia/china-latest.osm.pbf -O /var/www/html/osm/china-latest.osm.pbf在
/var/www/html/osm/tile-server下编写docker-compose.yml内容如下(根据自己机器的配置来调整shm_size)services: postgres: image: postgis/postgis:16-3.4 container_name: tile-postgres restart: always environment: POSTGRES_DB: gis POSTGRES_USER: renderer POSTGRES_PASSWORD: renderer volumes: - ./postgres:/var/lib/postgresql/data shm_size: 4g tile-server: image: overv/openstreetmap-tile-server container_name: tile-server restart: always ports: - "9080:80" volumes: - ./osm-data:/data environment: THREADS: 8 UPDATES: disabled抽取需要的目录及文件
docker create --name osm-tile-server overv/openstreetmap-tile-server docker cp osm-tile-server:/data/. ./osm-data/ docker rm osm-tile-server导入数据(无法指定数据文件,只认
region.osm.pbf,所以我们需要变更导入文件的名称)rm -f osm-data/region.osm.pbf && cp ../china-latest.osm.pbf osm-data/region.osm.pbf开始导入
docker run --rm -v $(pwd)/osm-data:/data overv/openstreetmap-tile-server import运行
docker run -d --name osm-tile-server -p 9080:80 -v $(pwd)/osm-data:/data -v $(pwd)/osm-data/tiles:/var/cache/renderd/tiles --restart unless-stopped overv/openstreetmap-tile-server run更改目录权限,不然没办法创建缓存
chmod -R 777 osm-data/tiles中国区测试
http://ip:9080/tile/5/26/12.png
预热数据(如果使用“
Vector Tile(矢量瓦片)”这里可以忽略)Zoom 用途 瓦片数量 0-5 全国概览 少 6-8 省级 较少 9-12 城市级 一般 13-18 街道级 巨大 进入容器
docker exec -it osm-tile-server bash预热 0-12 级的
nohup render_list -z 0 -Z 12 -a > render.log 2>&1 &预热 13-14 级的
nohup render_list -z 13 -Z 14 -a > render.log 2>&1 &参数 含义
-z 最低 zoom
-Z 最高 zoom
-a 全部区域
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭