# MapGIS Client for JavaScript API

Cesium MapboxGL Leaflet OpenLayers
API文档

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

    class WMTSLayerUtil {}

    /**
     * 添加WMTS图层
     * @param {WMTSLayer} layer WMTS图层基本对象
     * @param {Viewer} innerView Cesium的视图对象
     * @return {Object} 创建的WMTS图层对象
     * */
    WMTSLayerUtil.addWMTSLayer = function (layer, innerView) {
      const {tileMatrixSetId, tileMatrixSets} = layer.activeLayer
      const TileMatrixSet = tileMatrixSets.find(
        (tileMatrix) => tileMatrix.id === tileMatrixSetId
      )
      const tileInfo = TileMatrixSet.tileInfo

      const tilingScheme = getTilingSchemeBySpatialReference(
        layer.spatialReference,
        layer.extent,
        tileInfo
      )

      let url = layer.url
      if (layer.tokenValue && layer.tokenKey) {
        url += `?${layer.tokenKey}=${layer.tokenValue}`
      }
      const options = {
        // 服务基地址
        url,
        // 图层名称
        layer: layer.activeLayer.title,
        // 请求格式
        format: layer.activeLayer.imageFormat,
        // 瓦片样式
        style: layer.activeLayer.styleId,
        // 比例尺
        tileMatrixSetID: layer.activeLayer.tileMatrixSetId,
        // 裁图方式
        tilingScheme,
        // 瓦片宽度
        tileWidth: layer.imageWidth,
        // 瓦片高度
        tileHeight: layer.imageHeight
      }
      // 是天地图，且是4326
      if (
        options.url.indexOf('.tianditu.gov.cn/') > -1 &&
        options.tileMatrixSetID === 'c'
      ) {
        // 要加一级
        options.tileMatrixLabels = [
          '1',
          '2',
          '3',
          '4',
          '5',
          '6',
          '7',
          '8',
          '9',
          '10',
          '11',
          '12',
          '13',
          '14',
          '15',
          '16',
          '17',
          '18',
          '19',
          '20'
        ]
      }
      // 获取图层index
      const index = getCesiumLayerIndex(layer, innerView)
      const wmtsLayer = innerView.scene.imageryLayers.addImageryProvider(
        new Cesium.WebMapTileServiceImageryProvider(options),
        index
      )

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

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

    export default WMTSLayerUtil

构造函数
成员变量
方法
事件