123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /* 引入Cesium */
- // import * as Cesium from 'Cesium';
- /**
- * 分屏
- */
- class ViewerSplitScreen {
- /**
- * 默认初始化
- */
- constructor() {}
- }
- /**
- * 通用对外公开函数
- */
- Object.assign(ViewerSplitScreen.prototype, /** @lends ViewerSplitScreen.prototype */ {
- /**
- * 开启分屏
- * @param {Object} viewer1 视窗1
- * @param {Object} viewer2 视窗2
- */
- initHandler(viewer1, viewer2) {
- var _self = this;
- if (_self.handler1 && _self.handler1.getInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE)) {
- return;
- }
- _self.handler1 = new Cesium.ScreenSpaceEventHandler(viewer1.scene.canvas);
- _self.handler2 = new Cesium.ScreenSpaceEventHandler(viewer2.scene.canvas);
- _self.handler1.setInputAction(function(movement) {
- var _camerca = viewer1.camera;
- viewer2.camera.setView({
- destination: _camerca.position,
- orientation: {
- direction: _camerca._direction,
- up: _camerca.up,
- heading: _camerca.heading,
- pitch: _camerca.pitch,
- roll: _camerca.roll
- }
- });
- }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
- _self.handler1.setInputAction(function(movement) {
- var _camerca = viewer1.camera;
- viewer2.camera.setView({
- destination: _camerca.position,
- orientation: {
- direction: _camerca._direction,
- up: _camerca.up,
- heading: _camerca.heading,
- pitch: _camerca.pitch,
- roll: _camerca.roll
- }
- });
- }, Cesium.ScreenSpaceEventType.WHEEL);
- _self.handler2.setInputAction(function(movement) {
- var _camerca = viewer2.camera;
- viewer1.camera.setView({
- destination: _camerca.position,
- orientation: {
- direction: _camerca._direction,
- up: _camerca.up,
- heading: _camerca.heading,
- pitch: _camerca.pitch,
- roll: _camerca.roll
- }
- });
- }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
- _self.handler2.setInputAction(function(movement) {
- var _camerca = viewer2.camera;
- viewer1.camera.setView({
- destination: _camerca.position,
- orientation: {
- direction: _camerca._direction,
- up: _camerca.up,
- heading: _camerca.heading,
- pitch: _camerca.pitch,
- roll: _camerca.roll
- }
- });
- }, Cesium.ScreenSpaceEventType.WHEEL);
- },
- /**
- * 移除分屏效果
- */
- clearHandler() {
- var _self = this;
- if (_self.handler1) {
- _self.handler1.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE);
- _self.handler1.removeInputAction(Cesium.ScreenSpaceEventType.WHEEL);
- }
- if (_self.handler2) {
- _self.handler2.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE);
- _self.handler2.removeInputAction(Cesium.ScreenSpaceEventType.WHEEL);
- }
- }
- });
- export default ViewerSplitScreen;
|