mirror of
https://github.com/jiawanlong/Cesium-Examples.git
synced 2025-07-05 15:47:34 +00:00
99 lines
1.8 KiB
JavaScript
99 lines
1.8 KiB
JavaScript
class AbsLayerObj {
|
|
constructor(config = {}) {
|
|
this._config = config
|
|
this._visible = false
|
|
this._onload = false
|
|
this._islive = true
|
|
this._id = config.id ? config.id : `${new Date().getTime()}`
|
|
}
|
|
|
|
get id() {
|
|
return this._id
|
|
}
|
|
|
|
set id(val) {
|
|
this._id = val
|
|
}
|
|
|
|
get config() {
|
|
return this._config
|
|
}
|
|
|
|
set config(_config) {
|
|
this._config = _config
|
|
}
|
|
|
|
get visible() {
|
|
return this._visible
|
|
}
|
|
|
|
set visible(bool) {
|
|
if (this._visible == bool) return
|
|
if (bool) {
|
|
this.draw({})
|
|
} else {
|
|
this.remove(false)
|
|
}
|
|
this._visible = bool
|
|
}
|
|
|
|
get islive() {
|
|
return _islive
|
|
}
|
|
|
|
load() {
|
|
throw new Error('子类必须重写父类的draw方法')
|
|
}
|
|
|
|
addToMap(map, option = {}) {
|
|
this.add(map, option)
|
|
}
|
|
|
|
add(map, option) {
|
|
this.map = this.map ? this.map : map
|
|
if (!this._islive) return console.log('图层已被移除,无法继续加载')
|
|
this.draw(option)
|
|
this._visible = true
|
|
this._onload = true
|
|
// this.emit('add')
|
|
}
|
|
|
|
draw() {
|
|
throw new Error('子类必须重写父类的draw方法')
|
|
}
|
|
|
|
remove(bool = true) {
|
|
if (!this._islive) return console.log('图层已被移除')
|
|
// if (this.dataModule && this.dataModule.cancel) this.dataModule.cancel()
|
|
if (this.map) this.clean()
|
|
this._visible = false
|
|
this._onload = false
|
|
if (bool) {
|
|
this._islive = false
|
|
}
|
|
// this.emit('remove')
|
|
}
|
|
|
|
clean() {
|
|
throw new Error('子类必须重写父类的clean方法')
|
|
}
|
|
|
|
location() {
|
|
throw new Error('子类必须重写父类的location方法')
|
|
}
|
|
|
|
// on(key, func) {
|
|
// this._events.on(key, func)
|
|
// }
|
|
|
|
// un(key, func) {
|
|
// this._events.un(key, func)
|
|
// }
|
|
|
|
// emit() {
|
|
// this._events.emit(arguments[0], arguments[1])
|
|
// }
|
|
}
|
|
|
|
export default AbsLayerObj
|