Cesium加载geoserver发布的wms地图服务-设置BBOX参数无效

一、问题描述:

地图服务是geoserver发布的wms地图服务,使用cesium加载渲染,加载代码如下。

// Cesium加载wms
var wms = new Cesium.WebMapServiceImageryProvider({
                url: '',
                layers: '',//图层名称,或者:工作区:图层名
                 parameters:{
                    service:'WMS',
                    format:'image/jpeg',
                    srs: 'EPSG:4326',
                    transparent: true,//是否透明
                    BBOX: '106.1,26.8,106.2,27'
                }
               });

设置BBOX参数之后,后端会产生多次wms请求,前端会重复显示多个请求结果,如图所示。
在这里插入图片描述

二、解决办法:

遇到这个问题,先从WMS地图服务开始查找原因,
WMS地图服务定义的三个接口是GetCapabilities、GetMap和GetFeatureInfo,其中GetFeatureInfo是可选的。

  1. GetCapabilities接口的目的是获取服务元数据。
  2. GetMap接口返回一张地图。
  3. GetFeatureInfo接口用于获取地图指定空间位置的要素信息。
    地图加载明显通过调用GetMap接口,所以查找了对应对应的接口参数,设置发现问题并没有解决,但是通过openLayers加载BBOX参数生效,所以定位问题应该是出现在Cesium的WebMapServiceImageryProvider接口设置上。
    在这里插入图片描述
    通过查找API文档,发现WebMapServiceImageryProvider提供了rectangle来设置加载地图的地图的矩形范围,传入一个Rectangle对象,问题解决。
//Rectangle对象
new Cesium.Rectangle(west, south, east, north)
//成功加载代码
var wms = new Cesium.WebMapServiceImageryProvider({
                url: '',
                layers: '',//图层名称,或者:工作区:图层名
                 parameters:{
                    service:'WMS',
                    format:'image/jpeg',
                    srs: 'EPSG:4326',
                    transparent: true,//是否透明
                }rectangle: Cesium.Rectangle.fromDegrees(106.1,26.8,106.2,27),
               });
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Giserkun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值