import { getCesiumLayerIndex } from './support/utils'

class TDTLayerUtil {}

/**
 * 添加WMTS图层
 * @param {TDTLayer} layer WMTS图层基本对象
 * @param {Viewer} innerView Cesium的视图对象
 * @return {Object} 创建的WMTS图层对象
 * */
TDTLayerUtil.addTDTLayer = function (layer, innerView) {
  const options = {
    // 服务基地址
    url: `http://t${parseInt(
      String(Math.floor(Math.random() * 7))
    )}.tianditu.gov.cn/${layer.layerType}_${layer._tileMatrixSetID}/wmts?${
      layer.tokenKey
    }=${layer.tokenValue}`,
    // 图层名称
    layer: layer.layerType,
    // 请求格式
    format: layer.imageFormat,
    // 瓦片样式
    style: layer.style,
    // 比例尺
    tileMatrixSetID: layer._tileMatrixSetID
  }
  // 获取图层index
  const index = getCesiumLayerIndex(layer, innerView)
  const tdtLayer = innerView.scene.imageryLayers.addImageryProvider(
    new Cesium.WebMapTileServiceImageryProvider(options),
    index
  )

  tdtLayer.id = layer.id
  tdtLayer._realIndex = layer._realIndex + 1
  return tdtLayer
}

/**
 * 移除图层
 * @param {Object} layer 图层对象
 * @param {Viewer} innerView Cesium的视图对象
 * */
TDTLayerUtil.removeLayer = function (layer, innerView) {
  innerView.scene.imageryLayers.remove(layer)
}

export default TDTLayerUtil
