使用GDAL实现地图瓦片切片:从PNG到Web地图的完整指南
使用GDAL实现地图瓦片切片:从PNG到Web地图的完整指南
在WebGIS开发中,将静态地图图片转换为可缩放的瓦片地图是常见需求。本文将手把手教你使用GDAL工具完成从PNG到Web地图的完整工作流程。
准备工作
1. 安装GDAL
conda install -c conda-forge gdal
2. 准备地图文件
- 源文件:
map.png - 中国大致范围(EPSG:4326):
- 左上角:73.40, 53.33
- 右下角:135.05, 3.58
步骤1:PNG转GeoTIFF
基本转换
gdal_translate map.png map.tif
添加地理参考信息
gdal_translate -a_srs EPSG:4326 -a_ullr 73.40 53.33 135.05 3.58 map.png map_geo.tif
压缩输出
gdal_translate -co COMPRESS=LZW map.png map_compressed.tif
步骤2:验证地理信息
gdalinfo map_geo.tif
详细验证
gdalinfo -stats -mm -proj4 map_geo.tif
步骤3:坐标系转换(如需要)
WGS84转兰伯特投影
gdalwarp -t_srs "EPSG:4326" input.tif output.tif
添加自定义投影(使用.prj文件)
gdal_edit.py -a_srs "D:/path/lambert_custom.prj" map.tif
步骤4:生成瓦片地图
基本命令
gdal2tiles.py -p raster -z 0-10 map_geo.tif output_tiles
参数说明
-p raster:生成栅格瓦片(默认格式为 PNG)。-z 0-10:生成 0(全局)到 10 级瓦片(根据数据分辨率调整,级别越高瓦片越详细)。--processes=4:使用 4 个 CPU 核心加速生成(按需调整)。--webviewer=all:生成所有预览 HTML(包括 OpenLayers、Leaflet 等)。- 输入文件路径:
"D:\work\433专业教室建设\code\map-slice\resources\xian.tif" - 输出目录:
"D:\work\433专业教室建设\output_tiles"
不同投影支持
# 麦卡托投影
gdal2tiles.py -p mercator -z 0-10 map.tif output_tiles
# 大地测量投影
gdal2tiles.py -p geodetic -z 0-8 map.tif output_tiles
步骤5:结果验证
目录结构检查
output_tiles/
├── 0/ # 0级瓦片
├── 1/ # 1级瓦片
...
├── 12/ # 12级瓦片
├── tilemapresource.xml
└── openlayers.html # 预览文件
预览地图
在浏览器中打开output_tiles/openlayers.html,检查:
- 地图显示是否正常
- 缩放功能是否流畅
- 各层级细节是否完整
其他
也可以使用ArcMap进行GUI可视化操作进行地理配准,再进行瓦片制作,多种实现方式根据自己需求选择。
登峰造极的成就源于自律

浙公网安备 33010602011771号