解决geoserver WMS服务加载超大地图速度慢的问题

文章讲述了通过geoserver发布WMS和WMTS服务在三维地球上加载黑龙江卫星地图的问题及优化过程。WMS服务导致地图加载速度慢和重复加载,而WMTS服务虽有提升但出现了地图其他区域变白的情况。最后,通过cesiumlab自切瓦片并使用ArcMap处理白边问题,成功解决了地图加载和显示的优化问题。
摘要由CSDN通过智能技术生成

记录一下问题解决的过程。

先贴最终效果图:

在三维地球上贴上黑龙江的卫星地图,源文件是tif格式,6.79G

  1. 阶段一:通过geoserver发布WMS服务

let mapProvider1 = new Cesium.WebMapServiceImageryProvider({
    url: window.configs.WebMapServiceImageryProviderUrl,
    layers: 'xxx:xxx',
    parameters: {
        service: 'WMS',
        format: 'image/png',
        transparent: true
    }
});
viewer.imageryLayers.addImageryProvider(mapProvider1);

问题:

  1. 地图加载速度慢。镜头切到A,却会先加载B处的影像然后再加载A;镜头反复切换,影像也要反复重新加载。

  1. geoserver持续运行几天后,会很卡,甚至停住了不响应请求。这个问题尝试通过“任务计划程序”每天定时启动startup.bat来解决,但是发现这种方式启动,geoserver的响应速度比通过鼠标双击startup.bat启动要慢,只是能用,但不好用。

  1. 阶段二:通过geoserver发布WMTS服务

let wmtsImageryProvider1 = new Cesium.WebMapTileServiceImageryProvider({
    url: 'http://192.168.1.163:8080/geoserver/gwc/service/wmts/rest/xxx:xxx/{style}/{TileMatrixSet}/{TileMatrixSet}:{TileMatrix}/{TileRow}/{TileCol}?format=image/jpeg',
    layer: 'xxx:xxx',
    style: '',
    format: 'image/jpeg',
    tileMatrixSetID: 'EPSG:900913',      //一般使用EPSG:3857坐标系
    // parameters: {
    //     transparent: true
    // }
});
viewer.imageryLayers.addImageryProvider(wmtsImageryProvider1);

通过使用WMTS,加载速度有了大幅提升。

问题:

  1. 如下图,加上黑龙江的图层之后,地球的其他部分都变成了白色。猜测原因是geoserver在生成瓦片的时候,把其他部分都填充了白色。尝试通过上面代码块中注释的transparent: true来解决,但没有效果。

于是打算通过cesium lab自己切瓦片来解决,进入第三阶段。

parameters: {
    transparent: true
}

  1. 阶段三:通过cesium lab自己切瓦片,然后发布瓦片

viewer.imageryLayers.addImageryProvider(
    new Cesium.UrlTemplateImageryProvider({
        url: './xxx/{z}/{x}/{y}.png',
        maximumLevel: 12
    })
)

目前切换到任何视角,地图基本1秒就能加载完成。

问题:

  1. 如下图,黑龙江地图周围存在白边。

解决方案:

使用Arc Map去掉白边,设置NoData 为 255,并保存。

然后再用cesium lab切片,黑龙江地图周围的白边就没有了。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值