| 
                        123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | 
                        - /**
 -  * @Author: Caven
 -  * @Date: 2023-01-07 15:49:26
 -  */
 - 
 - import { DeveloperError, EllipsoidTerrainProvider } from '@cesium/engine'
 - 
 - class BaseLayerPicker {
 -   constructor(options) {
 -     if (!options.globe) {
 -       throw new DeveloperError('globe is required')
 -     }
 -     this._globe = options.globe
 -     this._imageryProviders = []
 -     this._terrainProviders = []
 -     this._selectedImagery = undefined
 -     this._selectedTerrain = undefined
 -   }
 - 
 -   set selectedImagery(imagery) {
 -     if (!imagery || !imagery.providers) {
 -       new DeveloperError('imagery format error')
 -     }
 -     const imageryLayers = this._globe.imageryLayers
 -     if (!this._selectedImagery) {
 -       for (let i = imagery.providers.length - 1; i >= 0; i--) {
 -         imageryLayers.addImageryProvider(imagery.providers[i], 0)
 -       }
 -     } else if (
 -       this._selectedImagery &&
 -       imagery.id !== this._selectedImagery.id
 -     ) {
 -       imageryLayers.removeAll()
 -       for (let i = imagery.providers.length - 1; i >= 0; i--) {
 -         imageryLayers.addImageryProvider(imagery.providers[i], 0)
 -       }
 -     }
 -     this._selectedImagery = imagery
 -   }
 - 
 -   get selectedImagery() {
 -     return this._selectedImagery
 -   }
 - 
 -   set selectedTerrain(terrian) {
 -     if (this.selectedImagery !== terrian) {
 -       this._globe.depthTestAgainstTerrain = !(
 -         terrian instanceof EllipsoidTerrainProvider
 -       )
 -       this._globe.terrainProvider = terrian
 -       this._selectedTerrain = terrian
 -     }
 -   }
 - 
 -   get selectedTerrain() {
 -     return this._selectedTerrain
 -   }
 - 
 -   /**
 -    *
 -    * @param provider
 -    * @returns {BaseLayerPicker}
 -    */
 -   addImageryProvider(provider) {
 -     let providers = []
 -     let len = this._imageryProviders.length + 1
 -     if (!Array.isArray(provider)) {
 -       providers = [provider]
 -     } else {
 -       providers = provider.since(0)
 -     }
 -     this._imageryProviders.push({
 -       id: `dc-imagery-${len}`,
 -       providers
 -     })
 -     return this
 -   }
 - 
 -   /**
 -    *
 -    * @param provider
 -    * @returns {BaseLayerPicker}
 -    */
 -   addTerrainProvider(provider) {
 -     this._terrainProviders.push(provider)
 -     return this
 -   }
 - 
 -   /**
 -    *
 -    * @param index
 -    * @returns {BaseLayerPicker}
 -    */
 -   changeImagery(index) {
 -     if (index > this._imageryProviders.length - 1) {
 -       new DeveloperError('index error ')
 -       return this
 -     }
 -     this.selectedImagery = this._imageryProviders[index]
 -     return this
 -   }
 - 
 -   /**
 -    *
 -    * @param index
 -    * @returns {BaseLayerPicker}
 -    */
 -   changeTerrain(index) {
 -     if (index > this._terrainProviders.length - 1) {
 -       new DeveloperError('index error ')
 -       return this
 -     }
 -     this.selectedTerrain = this._terrainProviders[index]
 -   }
 - }
 - 
 - export default BaseLayerPicker
 
 
  |