导出高清地图
导出方式选择
导出地图的方式有很多,以下对比方式的区别及使用场景:
QGIS / ArcGIS Desktop:适用于专业、高质量的打印或导出,需要人工操作,不适合全自动化服务;
GDAL WMS/WMTS:适用于专业、高质量的打印或导出,可实现完全自动化,GitHub Star 5.5k;
MapProxy / TileStitcher :灵活、复杂、冷门、使用成本高,GitHub Star 600;
GeoServer Printing:适用于小范围或小尺寸打印,例如 报表、A3/A4、小册子等,GitHub Star 192;
GeoServer服务接口:使用GeoServer服务接口来获取超大图块,但图块过大时可能导致GeoServer内存溢出,因为GeoServer服务接口仅设计在小图块(瓦片)场景下使用;
注:如果打印或导出专业、高清的地图,推荐使用QGIS / ArcGIS Desktop;若要全自动,推荐使用GDAL WMS/WMTS;
下载安装GDAL
推荐通过Docker安装GDAL,GDAL提供多个版本的Docker镜像,如下以GDAL 3.6.3镜像为例:
alpine-small-3.6.3:体积小,最基础的 GDAL,用于轻量级测试和小型任务;
ubuntu-small-3.6.3:体积小,基础 GDAL,用于小任务;
alpine-normal-3.6.3:体积中等,带大部分 GDAL驱动(包括 WMS/WMTS/GeoTIFF),可用于大部分瓦片/GeoServer 拼接任务;
ubuntu-full-3.6.3:体积较大,功能最全,带Python、GDAL 工具、PROJ、NumPy、Python GDAL 包等;
注:推荐使用 ubuntu-full 版本;
安装GeoServer Printing打印模块
GeoServer Printing
打印模块使用的三方库mapfish-print
,而mapfish-print
的关注度极低,在GitHub
上的Star
只有192,属于及为冷门的库,因此不推荐使用。
实测安装 GeoServer Printing
打印模块时极为艰难,安装好以后会因为缺少各种依赖 jar
包而报500
错误。最终在 GeoServer 2.21.3 版本上成功安装了 GeoServer Printing
打印模块。安装注意事项如下:
1>. GeoServer的版本必须与扩展的版本,推荐直接在Geoserver的下载页面下载对应版本的扩展,而下文中截图;
2>. GeoServer 2.21.3要求的java环境必须为jdk 11,且必须依赖json-20080701.jar;
3>. 要以管理员权限启动geoserver,否则在打印模块在导出时因无权限写入磁盘临时文件而导致报500。