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