在上文介绍过常见的地图服务之后,本文将介绍一下利用QGIS软件和gdal2tiles库将栅格数据进行切片处理供前端使用。
如前文提到的,在栅格瓦片地图服务(tms和wmts)之前,为了解决影像数据的显示,大家使用的都是WMS服务,在前端渲染地图时,会把当前显示的地理范围传递给服务器,然后服务器去影像数据上搜索这个范围并导出为合适分辨率的图片,然后返回给前端进行显示,但是这种策略耗时不稳定,有时长有时短,因而促生了栅格瓦片地图服务。
利用QGIS软件切片
QGIS是基于Qt,使用C++开发的一个用户界面友好、跨平台的开源版桌面地理信息系统,官网地址为https://www.qgis.org/。下载安装QGIS,此处不再详细介绍。
首先我们可以将影像数据拖入到QGIS,并且使图层处于开启的状态;
之后在工具箱,选择栅格工具->生成xyz瓦片目录,如下图:
然后双击进入,配置相应的参数,如下图:其中Extent参数选择从图层计算,最小最大的等级根据影像的实际情况设置,使用反转的瓦片Y轴(TMS约定)根据自己想要生成的瓦片类型而定,如果想要生成TMS的切片则勾选
最后点击运行,就会生成如下图所示的目录结构:
在浏览器中访问html,即可查看切片的结果,此demo是利用leaflet写的
利用gdal2tiles库切片
安装:pip install pdal2tiles
在.py文件中执行:
tileName = 'tif存放位置'
fileName= '切片存放位置'
gdal2tiles.generate_tiles(tileName, fileName, np_processes=5, zoom='5-10',resume=True)
切片部署
将生成好的切片数据,放入tomcat或者Nginx,即可在网页端使用此切片服务。