core/layers/BaseLayer.js

import { Cesium } from '../../../namespace'
import { getGoogleOption, getTdtOption } from '../../utils/layers/ImageryOption'
/**
 * 基础图层类
 * @class
 */
class BaseLayer {
  /**
   * 构造函数
   */
  constructor() {}
  /**
   * 默认单片图
   * @readonly
   * @type {Object}
   */
  get DefaultSingleImg() {
    const img = require('../../../resources/globe.jpg')
    const layer = Cesium.ImageryLayer.fromProviderAsync(
      Cesium.SingleTileImageryProvider.fromUrl(img)
    )
    return layer
  }
  /**
   * 默认arcgis底图
   * @readonly
   * @type {Object}
   */
  get DefaultArcgisImg() {
    return Cesium.ImageryLayer.fromProviderAsync(
      Cesium.ArcGisMapServerImageryProvider.fromUrl(
        'https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer'
      )
    )
  }

  /**
   * 默认谷歌影像地图
   * @readonly
   * @type {Object}
   */
  get DefaultGoogleVec() {
    const option = getGoogleOption()
    return Cesium.ImageryLayer.fromProviderAsync(
      new Cesium.UrlTemplateImageryProvider(option)
    )
  }
  /**
   * 默认天地图影像地图
   * @readonly
   * @type {Object}
   */
  get DefaultTdtImg() {
    const option = getTdtOption('img')
    return Cesium.ImageryLayer.fromProviderAsync(
      new Cesium.WebMapTileServiceImageryProvider(option)
    )
  }

  /**
   * 默认天地图矢量地图
   * @readonly
   * @type {Object}
   */
  get DefaultTdtVec() {
    const option = getTdtOption('vec')
    return Cesium.ImageryLayer.fromProviderAsync(
      new Cesium.WebMapTileServiceImageryProvider(option)
    )
  }

  /**
   * 默认全球地形
   * @readonly
   * @type {Object}
   */
  get DefaultTerrain() {
    const terrainProvider = Cesium.createWorldTerrainAsync({
      requestWaterMask: true,
      requestVertexNormals: true,
    })
    return new Cesium.Terrain(terrainProvider)
  }

  /**
   * 获取tms格式地形
   * @param {String} url - 地形文件路径,如:http://localhost:80/terrain/
   * @returns tms格式地形对象
   */
  getTerrain(url) {
    return new Cesium.Terrain(Cesium.CesiumTerrainProvider.fromUrl(url))
  }
}
export default BaseLayer