| 
                        123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | 
                        - /**
 -  * @Author : Caven Chen
 -  */
 - 
 - import { Cesium } from '../../namespace'
 - const { ImageryLayer } = Cesium
 - 
 - class BaseLayerPicker {
 -   constructor(options) {
 -     if (!options.globe) {
 -       throw new Error('globe is required')
 -     }
 -     this._globe = options.globe
 -     this._imageryLayers = []
 -     this._selectedImageryLayer = undefined
 -     this._count = 0
 -   }
 - 
 -   set selectedImageryLayer(imageryLayer) {
 -     if (!imageryLayer || !imageryLayer.layers) {
 -       new Error('imagery format error')
 -     }
 - 
 -     if (
 -       this._selectedImageryLayer &&
 -       imageryLayer.id === this._selectedImageryLayer.id
 -     ) {
 -       return
 -     }
 - 
 -     if (
 -       this._selectedImageryLayer &&
 -       imageryLayer.id !== this._selectedImageryLayer.id
 -     ) {
 -       for (let i = 0; i < this._selectedImageryLayer.cache.length; i++) {
 -         this._globe.imageryLayers.remove(this._selectedImageryLayer.cache[i])
 -       }
 -       imageryLayer.cache = []
 -     }
 - 
 -     for (let i = imageryLayer.layers.length - 1; i >= 0; i--) {
 -       let layer = imageryLayer.layers[i]
 -       let imagery = ImageryLayer.fromProviderAsync(layer, imageryLayer.options)
 -       layer && this._globe.imageryLayers.add(imagery, 0)
 -       imageryLayer.cache.push(imagery)
 -     }
 -     this._selectedImageryLayer = imageryLayer
 -   }
 - 
 -   get selectedImageryLayer() {
 -     return this._selectedImageryLayer
 -   }
 - 
 -   /**
 -    *
 -    * @param imageryLayer
 -    * @param options
 -    * @returns {BaseLayerPicker}
 -    */
 -   addImageryLayer(imageryLayer, options = {}) {
 -     let imageryLayers = []
 -     if (Array.isArray(imageryLayer)) {
 -       imageryLayers = imageryLayer.slice(0)
 -     } else {
 -       imageryLayers = [imageryLayer]
 -     }
 -     this._count++
 -     this._imageryLayers.push({
 -       id: `imagery-no-${this._count}`,
 -       layers: imageryLayers,
 -       cache: [],
 -     })
 -     return this
 -   }
 - 
 -   /**
 -    *
 -    * @param index
 -    * @returns {BaseLayerPicker}
 -    */
 -   changeImageryLayer(index) {
 -     if (index > this._imageryLayers.length - 1) {
 -       throw new Error('index error')
 -     }
 -     this.selectedImageryLayer = this._imageryLayers[index]
 -     return this
 -   }
 - }
 - 
 - export default BaseLayerPicker
 
 
  |