core/Screen.js

import { changeSV23D } from '../utils/Screen'
import SyncViewer from './screen/SyncViewer'
import ShotGrid from './screen/ShotGrid'

/**
 * 场景窗口类
 * @class
 */
class Screen {
  /**
   * 构造函数
   * @param {Object} viewer 地图场景对象
   * @see {ShotGrid} - 场景出图主类
   */
  constructor(viewer) {
    this._viewer = viewer
    this._sceneMode = 3
    /**
     * 场景出图主类
     * @type {ShotGrid}
     */
    this.ShotGrid = ShotGrid
  }

  /**
   * 场景模式,2D或者3D切换,2-2D,3-3D
   * @type {Number}
   */
  get sceneMode() {
    return this._sceneMode
  }
  set sceneMode(mode) {
    if (this._sceneMode === mode) return
    this._sceneMode = mode
    const type = {
      2: 'mapView',
      3: 'sceneView',
    }
    changeSV23D(this._viewer, type[mode])
  }

  /**
   * 创建多屏联动对象
   * @param {Array<Viewer>} viewerList 待联动地图场景对象集合
   * @returns {SyncViewer} 多屏联动对象
   */
  viewerSync(viewerList) {
    return viewerList && viewerList.length > 0
      ? new SyncViewer(this._viewer, viewerList)
      : undefined
  }
}
export default Screen