GeoServer访问切片数据 - 提前切片
概述
本文讲述如何将图层提前切片,然后前端直接访问切片完成的数据。此方式是提前切片图层数据,切片过程非常消耗性能,切片过程可能会非常慢长。
1. 打开GeoServer,进入图层切片页面(Tile Layers)
此处会展示所有图层,任选一个欲切片的图层进入
2. 进入图层切片缓存页面(Tile Cahing),如下图:
在此页面配置完成后,保存即可;
坐标系统Gridset详解
图中有两个gridsets,表示该地图将使用这两种坐标系统。下方有个 Add grid subset 的选项,可以添加更多的坐标系统。
一般来说只需要留一个gridsets即可。因为后面切图的时候,会根据gridsets来进行切图;这就意味着每一套gridsets都会有自己的切图。因此,减少gridsets的数量,就会减少切图数量和图片生成数量,从而提高效率,节约存储空间。
Gridset中的放缩级别zoom levels,用于设置实际查看地图时,地图所能显示的最大级别图层和最小级别图层。
如果zoom levels设置为4/10,则意味着该图层最大只能放大到10级,最小能缩小到4级。用户在使用时,如果放大到超过10级,就会将10级的图不断放大,导致图层模糊;缩小超过4级时,也是将4级的图进行缩小;
3. 返回至图层切片页面(Tile Layers),在刚才保存切片缓存的图层上点击“Seed/truncate”:
4. 点击“Seed/truncate”后,进入如下页面:
在此页面配置切片相关参数,然后点击“Submit”,即可开始切片
Zoom start 和 Zoom stop 用于设置将该图层切片为多少级的切片。
Zoom start 和 Zoom stop 设置的层级区间越大,切出的级数越多,切片的速度越慢;
如果设置为6~8级,则仅会将图层切为6~8级的切片;当需要显示10级地图时,再动态切出10级切片。
如果当前图层最高分辨率仅为9级,也能切出10级的切片,但并不推荐这样做。
点击“Submit”开始切片后,点击图中的“Refresh list”,可查看当前切片任务的执行情况、剩余时间等;
4. 切片文件
切片完成后,切片文件默认存储于 apache-tomcat-8.5.59/temp/geowebcache
(Linux) 目录下;
切片文件的位置可以使用环境变量 GEOWEBCACHE_CACHE_DIR
进行配置,通常情况下使用默认目录即可,详见:切片缓存目录配置;
5. 获取切片文件访问地址
0.1> 如下,在切片完成的图层上选择一种坐标系和格式的切片进行预览:
0.2> 如下图,打开预览页面后;从切片请求中获取链接和请求参数
6. 使用Cesium加载GeoServer切片
将获上一步获取到切片链接和参数配置到如下代码中,就可以访问了
var layer = new Cesium.WebMapTileServiceImageryProvider({
url : 'http://118.24.103.166:8080/geoserver/gwc/service/wmts?layer=yangww:yangww_level_6&style=&tilematrixset=EPSG:4326&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix=EPSG:4326:{TileMatrix}&TileCol={TileCol}&TileRow={TileRow}',
layer: "yangww:yangww_level_6",
style: "",
format: "image/png",
tileMatrixSetID:"EPSG:4326",
tilingScheme: new Cesium.GeographicTilingScheme(), // 切片方案,与TileMatrixSet中的切片组织相对应;调用EPSG4326坐标系时,切片方案必须为GeographicTilingScheme;
maximumLevel:10,
});
this.viewer.imageryLayers.addImageryProvider(layer);