这里需要ImageryLayer 定义
参考 cesium 图层那些事
```javascript
/**
卷帘效果
*/
import {ImageryLayer} from "./ImageryLayer";
export class ShutterEffect {
private map: any;
private _wrapper: any;
private _splitter: any;
private _splitterWidthCenter: any;
private _moveActive: boolean = false;
private _handler: any = null;
private _leftImageryLayer :ImageryLayer|null = null;
private _rightImageryLayer :ImageryLayer|null = null;
constructor(map: any) {
this.map = map;
this.moveHandler = this.moveHandler.bind(this);
}
start(left:ImageryLayer|null,right?:ImageryLayer|null,splitPosition = 0.5) {
this.stop();
if(this._wrapper || this._handler){
return;
}
if(left){
this._leftImageryLayer = left;
left.splitDirection(Cesium.ImagerySplitDirection.LEFT);
}
if(right){
this._rightImageryLayer = right;
right.splitDirection(Cesium.ImagerySplitDirection.RIGHT);
}
this.createDom(splitPosition);
}
stop() {
if (this._handler) {
this._handler.destroy();
this._handler = null;
}
if(this._wrapper){
this.map.container.removeChild(this._wrapper);
this._wrapper = null;
}
if(this._leftImageryLayer){
this._leftImageryLayer.removeByMap();
}
if(this._rightImageryLayer){
this._rightImageryLayer.removeByMap();
}
更多参考
网友评论