# MapGIS Client for JavaScript API

Cesium MapboxGL Leaflet OpenLayers
API文档

    import { defaultValue, getIGSDynamicLayer } from '@mapgis/webclient-common'
    import {
      getCesiumLayerIndex,
      getTilingSchemeBySpatialReference
    } from './support/utils'

    class IGSMapImageLayerUtil {}

    /**
     * 添加动态图层
     * @private
     * @param {Layer} layer 基本图层对象
     * @param {Viewer} innerView Cesium的视图对象
     * @param {Object} options 额外构造参数
     * @return {Object} 创建好的Cesium图层对象
     * */
    IGSMapImageLayerUtil.addIGSMapImageLayer = function (
      layer,
      innerView,
      options
    ) {
      options = defaultValue(options, {})
      const _isDynamicLayers = defaultValue(options.isDynamicLayers, false)
      const tilingScheme = getTilingSchemeBySpatialReference(
        layer.spatialReference,
        layer.extent
      )

      // 更新子图层显隐信息
      layer._setLayers()

      const _options = {
        // 服务基地址
        url: layer.url,
        // HTTP请求方式
        httpMethod: layer.httpMethod,
        // 瓦片宽度
        tileWidth: layer.imageWidth,
        // 瓦片高度
        tileHeight: layer.imageHeight,
        // 是否显示子图层
        layers: layer.layers,
        // 地图瓦片的切分方式,经纬度或者Web墨卡托
        tilingScheme
      }
      // 只有指定添加专题图时，才会启用专题图
      if (_isDynamicLayers) {
        _options.dynamicLayers = getIGSDynamicLayer(layer)
      }
      // 获取图层index
      const index = getCesiumLayerIndex(layer, innerView)
      // 加载IGS二维地图文档服务
      const igsMapImageLayer = innerView.imageryLayers.addImageryProvider(
        new Cesium.MapGISMapServerImageryProvider(_options),
        index
      )

      // 设置id
      igsMapImageLayer.id = layer.id
      // 设置index，layer._realIndex + 1是因为cesium第0个是底图，因此顺序从1开始
      igsMapImageLayer._realIndex = layer._realIndex + 1
      return igsMapImageLayer
    }

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

    export default IGSMapImageLayerUtil

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