OpenLayers叠加geoserverWMTS服务

在openlayers中使用切片的方式叠加geoserver服务;就需要使用geoserver的WMTS的方式来创建图层,创建的方式如下:
/**
 * @description  geoserver wmts  切片的加载
 * @param {Object} olmap 地图对象
 * @param {Array} projection 投影坐标系
 * @param {Array} extent 区域默认【-180,-90,180,90】
 * @param {Object} item 发布的图层对象
 * @param {Object} item.layername 发布的服务名称
 * @param {Object} item.url 发布的服务的url地址
 * @param {Object} item.id 发布的服务的id
 * @param {Object} appConfig 相关参数配置
 * @param {String} appConfig.map.proj 坐标系 例如 EPSG:4326  或者 EPSG:4490
 * @param {String} appConfig.map.maxZoom 地图的缩放最大层级
 * @param {Array} appConfig.map.resolutions.reso 地图分辨率参数
 * @param {Number}  zindex   图层的层级
*/
var  getGeoServerWMTS = (olmap , projection , extent ,item , appConfig , zindex) =>{
  var layer = null
  var TILEMATRIXArr = []
  for(let i=0;i<=appConfig.map.maxZoom + 2 ; i++) {
    TILEMATRIXArr.push(`${appConfig.map.proj}:${i}`)
  }
  var params = {
    'VERSION': '1.0.0',
    'LAYER': item.layername,
    'STYLE': '',
    'TILEMATRIX': TILEMATRIXArr,
    'TILEMATRIXSET': appConfig.map.proj,
    'SERVICE': 'WMTS',
    'FORMAT': "image/png"
  };
  var url = item.url.indexOf("geoserver") !=-1? `${item.url.split("geoserver")[0]}geoserver/gwc/service/wmts`:item.url
  var source = new olmap.source.WMTS({
    url: url,
    layer: params['LAYER'],
    matrixSet: params['TILEMATRIXSET'],
    format: params['FORMAT'],
    projection: projection,
    tileGrid: new olmap.tilegrid.WMTS({
      tileSize: [256,256],
    //   extent: extent,
      origin: [-180.0, 90.0],
      resolutions: appConfig.map.resolutions.reso,
      matrixIds: params['TILEMATRIX']
    }),
    style: params['STYLE'],
    wrapX: true
  });
  layer = new olmap.layer.Tile({
    id: item.id,
    zIndex: zindex,
    source:source
  })
  return layer
}
以上是个人总结,有不懂的可以评论加关注询问哦。
  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值