| } | } | ||||
| this._globe = options.globe | this._globe = options.globe | ||||
| this._imageryLayers = [] | this._imageryLayers = [] | ||||
| this._terrainProviders = [] | |||||
| this._selectedImageryLayer = undefined | this._selectedImageryLayer = undefined | ||||
| this._selectedTerrain = undefined | |||||
| this._count = 0 | this._count = 0 | ||||
| } | } | ||||
| for (let i = imageryLayer.layers.length - 1; i >= 0; i--) { | for (let i = imageryLayer.layers.length - 1; i >= 0; i--) { | ||||
| let layer = imageryLayer.layers[i] | let layer = imageryLayer.layers[i] | ||||
| if (layer) { | if (layer) { | ||||
| imageryLayers.add(new ImageryLayer(layer, imageryLayer.options), 0) | |||||
| imageryLayers.add( | |||||
| ImageryLayer.fromProviderAsync(layer, imageryLayer.options), | |||||
| 0 | |||||
| ) | |||||
| } | } | ||||
| } | } | ||||
| } else if ( | } else if ( | ||||
| for (let i = imageryLayer.layers.length - 1; i >= 0; i--) { | for (let i = imageryLayer.layers.length - 1; i >= 0; i--) { | ||||
| let layer = imageryLayer.layers[i] | let layer = imageryLayer.layers[i] | ||||
| if (layer) { | if (layer) { | ||||
| imageryLayers.add(new ImageryLayer(layer, imageryLayer.options), 0) | |||||
| imageryLayers.add( | |||||
| ImageryLayer.fromProviderAsync(layer, imageryLayer.options), | |||||
| 0 | |||||
| ) | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| return this._selectedImageryLayer | return this._selectedImageryLayer | ||||
| } | } | ||||
| set selectedTerrain(terrain) { | |||||
| if (this.selectedTerrain !== terrain) { | |||||
| this._globe.depthTestAgainstTerrain = !( | |||||
| terrain instanceof EllipsoidTerrainProvider | |||||
| ) | |||||
| this._globe.terrainProvider = terrain | |||||
| this._selectedTerrain = terrain | |||||
| } | |||||
| } | |||||
| get selectedTerrain() { | |||||
| return this._selectedTerrain | |||||
| } | |||||
| /** | /** | ||||
| * | * | ||||
| * @param imageryLayer | * @param imageryLayer | ||||
| return this | return this | ||||
| } | } | ||||
| /** | |||||
| * | |||||
| * @param provider | |||||
| * @returns {BaseLayerPicker} | |||||
| */ | |||||
| addTerrainProvider(provider) { | |||||
| if (!provider) { | |||||
| return this | |||||
| } | |||||
| this._terrainProviders.push(provider) | |||||
| return this | |||||
| } | |||||
| /** | /** | ||||
| * | * | ||||
| * @param index | * @param index | ||||
| return this | return this | ||||
| } | } | ||||
| /** | |||||
| * | |||||
| * @param index | |||||
| * @returns {BaseLayerPicker} | |||||
| */ | |||||
| changeTerrain(index) { | |||||
| if (index > this._terrainProviders.length - 1) { | |||||
| throw new Error('index error') | |||||
| } | |||||
| this.selectedTerrain = this._terrainProviders[index] | |||||
| return this | |||||
| } | |||||
| } | } | ||||
| export default BaseLayerPicker | export default BaseLayerPicker |