GeoServer系列-发布WMTS切片服务

前言:

  • WMTS弥补了WMS不能提供分块地图的不足。WMS针对提供可定制地图的服务,是一个动态数据或用户定制地图(需结合SLD标准)的理想解决办法。
  • GeoServer发布WMST是在已经发布好WMS服务的基础上进行的,将已发布的WMS图层按级别切片,前端根据缩放级别分别加载各个小切片图片

1、安装GeoServer的矢量切片插件

GeoServer的矢量切片插件是官方的插件,可以在GeoServer download页面中下载
注意根据自己geoserver的版本下载,可以直接修改下载页面url切换版本
GeoServer系列-发布WMTS切片服务_第1张图片
解压压缩包,并将包内文件全部拷贝到‘GeoServer\webapps\geoserver\WEB-INF\lib’ 处,并重启服务

打开GeoServer的Web管理界面,点开切片图层,进入某个切片图层的Tile Caching选项页面,可以看到Tile Image Formats多了几个选项,代表安装成功。
选择切片图层的“Tile Caching”,将数据类型中的geojson、topojson、mvt等勾选上
GeoServer系列-发布WMTS切片服务_第2张图片

2、发布wmts服务

点击要发布WMTS的切片,选择网格集和缩放层级
GeoServer系列-发布WMTS切片服务_第3张图片
设置好后在切片图层列表可以看到上一步选择的切片方案GeoServer系列-发布WMTS切片服务_第4张图片
预览wmts服务,表示wtms服务可用。不过此时看到的瓦片服务是geowebcache动态生成的,并没有生产全套的瓦片集合。
GeoServer系列-发布WMTS切片服务_第5张图片
制作本地切片缓存,加快访问速度
GeoServer系列-发布WMTS切片服务_第6张图片
GeoServer系列-发布WMTS切片服务_第7张图片
GeoServer系列-发布WMTS切片服务_第8张图片
GeoServer系列-发布WMTS切片服务_第9张图片
当切片完成后,切片保存在geoserver数据默认数据存储位置gwc文件下,进入gwc文件夹找到对应的图层, 可以在存放数据的目录看到切片文件,一个层级一个文件夹
GeoServer系列-发布WMTS切片服务_第10张图片
至此,wmts服务的瓦片生产已经完成了。

3、使用cesium加载wmts服务

代码如下,如果选择EPSG:4326,还需要添加tilingScheme: new Cesium.GeographicTilingScheme()

let wmtsImageryProvider = new Cesium.WebMapTileServiceImageryProvider({
      url: "http://localhost:8899/geoserver/gwc/service/wmts/rest/test:all_roads/{style}/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/png",
      layer: "test:all_roads",
      style: "", //务必加上style属性,哪怕style属性值为空字符串!!!!
      tileMatrixSetID: "EPSG:4326", //不能用4326,否则cesium中不显示
      tilingScheme: new Cesium.WebMercatorTilingScheme(),  // 当想要加载EPSG:4326瓦片服务时,只需要创建一个GeographicTilingScheme对象即可
    });
 
viewer.imageryLayers.addImageryProvider(wmtsImageryProvider);

其中:

{style}为瓦片风格,在“创建切片任务”时一般会选择默认值为“raster”;
{TileMatrixSet}为瓦片集合名,“创建切片任务”时会选择“EPSG:4326”或“EPSG:900913”;
{TileMatrix}为瓦片矩阵名,相当于其他切片方法中的缩放层级。由于GeoWebCache同时支持多种网格的切片,所以这个参数的命名与常用的切片机制稍微有点区别。还记得在geowebcache中看到的文件夹的名字吗?这里的{TileMatrix}就是用冒号替换了下划线后的那个文件名。这个参数一般是由前台可视化库自动给出的,注意要能获得正确的缩放级别,如“EPSG:4326:10”就表示10级缩放。
{TileRow}为瓦片行编号,由前台可视化库自动给出;
{TileCol}为瓦片列编号,由前台可视化库自动给出。

参考文章 https://blog.csdn.net/qq_45956730/article/details/129792761

你可能感兴趣的:(GIS,geoserver,WMTS,切片,cesium,发布wmts)