import { LayerView } from '@mapgis/webclient-common'
import { IGSMapImageUtil } from '../view/utils'
class IGSMapImageLayerView extends LayerView {
/**
* 添加图层视图
* @param {LayerEvent} 图层事件
* @return {Promise<LayerView>} 图层视图
*/
onAdd() {
const layer = this.layer
// 初始化是否可见
const visible = this._getLayerViewVisible()
this.innerLayer = IGSMapImageUtil.addIGSMapImageLayer(this, { visible })
this.innerLayer.commonLayerId = layer.id
return Promise.resolve(this)
}
/**
* 移除图层视图
* @param {LayerEvent} 图层事件
* @return {Promise<LayerView>} 图层视图
*/
onRemove() {
IGSMapImageUtil.removeLayer(this)
return Promise.resolve(this)
}
/**
* 更新图层视图
* @param {LayerViewUpdateEvent} 图层事件
* @return {Promise<LayerView>} 图层视图
*/
onUpdate(event) {
// 确保有updateContent
if (event.updateContent) {
for (let i = 0; i < event.updateContent.length; i++) {
const updateContent = event.updateContent[i]
// 有updateContent
if (updateContent) {
switch (updateContent.name) {
// 更新主图层可见性
case 'visible':
IGSMapImageUtil.setVisible(this, updateContent)
break
// 更新透明度
case 'opacity':
IGSMapImageUtil.setOpacity(this)
break
// 更新子图层
case 'sublayerVisible':
IGSMapImageUtil.refresh(this)
break
// 刷新图层
case 'refresh':
IGSMapImageUtil.refresh(this)
break
default:
}
}
}
}
return Promise.resolve(this)
}
}
export default IGSMapImageLayerView