地图图片分解为瓦片

类似于百度地图,动态加载

2026-02-11 15:46

windows安装gdal生成瓦片


1、安装conda

conda create -n gdal_env python=3.11
conda activate gdal_env

2、安装gdal

conda install -c conda-forge gdal

3、退出环境

conda deactivate

4、如果图片为jpg或png,需要转为geotiff格式

gdal_translate -of GTiff -a_srs  -a_ullr     -co COMPRESS=LZW  
1、-a_srs  (关键):为图像定义坐标系。常见选择:
EPSG:4326: 最常见的经纬度坐标系(WGS84),适用于全球地图。
EPSG:3857: Web墨卡托投影,谷歌地图、必应地图等网络地图使用的坐标系。如果你的PNG是网络地图截图或瓦片,很可能用这个。
例如:-a_srs EPSG:4326
2、-a_ullr     (关键):定义图像四个角的地理坐标。
必须按顺序提供:左 上 右 下
示例:一张覆盖北京城区范围的图片,可以设置为:-a_ullr 116.0 40.1 116.6 39.7
3、-co COMPRESS=LZW (可选但推荐):创建选项,使用LZW无损压缩来减小输出文件大小。

比如:gdal_translate -of GTiff -a_srs EPSG:4326 -a_ullr 116.0 40.1 116.6 39.7 -co COMPRESS=LZW beijing.png beijing_geo.tif

如果不清楚四个角的坐标,可以找图片中已知的三个点的地图坐标,比如标志性的建筑。然后找出各自在图片中对应的像素位置计算四个点。
计算算法脚本在文章下方

4、EPSG:4326 转换 EPSG:3857
gdalwarp -s_srs EPSG:4326 -t_srs EPSG:3857 intermediate.tif output_3857.tif


5、分解为瓦片

gdal2tiles.py -z - --xyz  
比如 gdal2tiles -z 8-14 --tiledriver=WEBP --webp-quality=95 --processes=4  --xyz intermediate.tif output


附件列表

像素转换坐标.py