愿你出走半生,归来仍是少年!
1.静态瓦片服务
此处描述的静态瓦片服务指瓦片本身存储于服务器的磁盘上,常用的服务类型包含了标准TMS服务以及Google的XYZ服务两种类型。
在Geoserver中常用的瓦片服务包含了WMS、WFS、TMS、WTMS等等。在面向数据更新频率不高、数据量大的前提下,通过静态瓦片服务可减少Geoserver对服务器性能的影响,同时通过Geoserver可实现瓦片服务的鉴权,相对于常规的IIS 和 Nginx 直接发布,更容易实现整体集成。
2.BlobStore
Geoserver中针对每个图层都提供对应的缓存存储仿方式和位置。通过新建不同的BlobStrore对象并赋予每个图层,可完成对应的设置。默认的类型包含GeoWebCache default、TMS layout 、SLIPPY三种类型。
2.1 GeoWebCache default
这个类型是默认使用的,缓存路径对应的是Geoserver的Data文件夹下的gwc文件夹。
2.2 TMS Layout
这个是标准TMS的切片方式,选择这个类型的图层的缓存文件都将会缓存为标准TMS瓦片。
2.3 SLIPPY
这个是Google XYZ的切片方式,选择这个类型的图层的缓存文件都将会缓存为xyz瓦片。
TMS和XYZ两种类型的瓦片,在处理同一个对象时最终产生的瓦片数相同,且相同缩放等级下的行文件夹数量也是相同的,只是图片的列名不同,满足Math.pow(2,zoom)-y-1的转换公式。
3.切片
1. 针对图层设置对应的Blob Store
2. 针对图层通过GeoCache进行切片缓存
3.设置参数后执行切片
4.访问
进入localhost:8080/geoserver/gwc/service/tms/1.0.0路径,可查看当前Geoserver服务器内支持TMS服务的图层,以openlayer为例(其他地图框架中可通过-y=Math.pow(2,zoom)-y-1计算)
当请求TMS Layout的瓦片时,后缀拼接/{z}/{x}/{-y}.png
当请求SLIPPY的瓦片时,后缀拼接/{z}/{x}/{y}.png
5.其他
5.1 为啥TMS、XYZ切片后不直接通过IIS、NGINX发布,效率更快
通过Geoserver的认证模块,可以将这些静态数据统一进行鉴权管理,更加安全。同时通过Geoserver的TMS服务可在用户访问时,自动缓存不存在的瓦片。
5.2 符号化优势
博主一般通过QGIS进行符号化配图,但是通常出现QGIS中的符号化文件导出上传到GeoServer后无法完美还原效果。
在给指定图层设定对应的blobstore后,可在图层文件夹下新建一个与该图层支持的网格集的名称相同的文件夹,然后通过QGIS将该图层处理成对应类型的瓦片数据。
当QGIS处理完成后,通过Geoserver的TMS服务地址进行访问,可发现获得的瓦片数据就是通过QGIS处理出来的瓦片。
5.3 性能调整
当数据源为栅格或者其他更新频率极低的数据时,当我们完成瓦片缓存的构建后,可关闭该图层的WMS、WFS、WCS等服务,只保留其 TMS服务,减少服务器性能开销。