core/layers/Imagery.js

/*
 * 影像图层主类
 * @Author: jianlei wang
 * @Date: 2024-02-04 15:03:56
 * @Last Modified by: jianlei wang
 * @Last Modified time: 2024-10-30 17:06:24
 */

import {
  addTdtWmts,
  removeImageryLayer,
  addGeoserverWmts,
  addMapboxServer,
} from '../../utils/layers/Imagery'

/**
 * 影像图层主类
 * @class
 */
class Imagery {
  /**
   * 构造函数
   * @param viewer 地图场景对象
   */
  constructor(viewer) {
    this._viewer = viewer
  }
  /**
   * 加载天地图影像
   * @param {String} type 地图类型:img-影像,vec-矢量,cva-矢量注记,cia-影像注记
   * @param {String} token 天地图token
   * @returns {ImageryLayer} 影像对象,ImageryLayer类对象,参考Cesium
   */
  addTdt(type, token) {
    const imagery = addTdtWmts(this._viewer, type, token)
    return imagery
  }

  /**
   * 加载geoserver发布的影像,目前仅支持wmts
   * @param {String} type 服务类型:wmts-WMTS数据,wms-WMS数据
   * @param {GeoserverWmtsOptions} options 图层参数
   * @returns {ImageryLayer} 影像对象,ImageryLayer类对象,参考Cesium
   */
  addGeoserver(type, options) {
    let imagery
    switch (type) {
      case 'wmts':
        imagery = addGeoserverWmts(this._viewer, options)
        break

      default:
        break
    }
    return imagery
  }
  /**
   * 加载Mapbox发布的地图服务
   * @param {MapboxOption} options
   */
  addMapbox(options) {
    const imagery = addMapboxServer(this._viewer, options)
    return imagery
  }
  /**
   * 移除影像图层
   * @param {ImageryLayer} layer 影像图层对象
   */
  remove(layer) {
    removeImageryLayer(this._viewer, layer)
  }
}
export default Imagery