/* * @Descripttion: * @version: 0.01 * @Author: Morpheus * @Date: 2020-10-22 11:05:09 * @LastEditors: Morpheus * @LastEditTime: 2020-10-22 13:48:22 */ import DC from '@dvgis/dc-sdk/dist/dc.base.min' // 基础包 import DcCore from '@dvgis/dc-sdk/dist/dc.core.min' // 核心包 DC.use(DcCore) // 安装DC核心库 class mobileDivForms { /** * @popup 存放 dom 相关 * */ constructor(viewer, popup) { this._viewer = viewer this._popup = popup this._position = popup.position this._title = popup.title this._content = popup.content this.appendPopup() this.isOpen = true } get viewer () { return this._viewer } get title () { return this._title } get content () { return this._content } get popup () { return this._popup } get position () { return this._position } appendPopup () { /** * @domId 存放 dom 的id, 多个数组,单个字符串 */ this.createVideoWindowAll(this._popup.domId, this._popup.className, this._position[0]) } // 创建元素并追加 createVideoWindowAll (id, className, position) { const dom = document.getElementById('mobile-map_popup_content') dom.style.display = 'block' var childs = document.getElementById('mobile-map_popup_content').getElementsByTagName('div') if (childs.length > 0) { for (var i = 0; i < childs.length; i++) { document.getElementById('mobile-map_popup_content').removeChild(childs[i]) } } var self = this // var el = $("
") var el = document.createElement('div') // var titleDiv = $("").text(this._title) // var labelContent = $("").append(this._content) // el.append(titleDiv) // el.append(labelContent) el.appendChild(this._content) el.setAttribute('id', id) el.setAttribute('class', className || '') document.getElementById('mobile-map_popup_content').appendChild(el) // let time; // function cons(e) { // time = setTimeout(() => { // console.log(e) // console.log(e.sun._drawingBufferHeight) // console.log("roll: ", e.camera.roll) // console.log("pitch: ", e.camera.pitch) // console.log("heading: ", e.camera.heading) // clearTimeout(time); // time = ""; // }, 2000); // } this._viewer.scene.postRender.addEventListener(function (e) { if (!self.isOpen) { return } const windowCoord = DC.Namespace.Cesium.SceneTransforms.wgs84ToWindowCoordinates( self._viewer.scene, position ) // time || cons(e); self.positionPopUp(windowCoord, id) }) } positionPopUp (windowCoord, id) { if (!windowCoord) { return } // console.log(windowCoord) const wx = document.getElementById('app').clientWidth const x = windowCoord.x - (wx / 100 * 35) const y = windowCoord.y - document.getElementById(id).offsetHeight - 15 // x = windowCoord.x - document.getElementById(id).offsetWidth // document.getElementById(id).style.cssText = ` document.getElementById(id).style.cssText = ` visibility:visible; z-index:98; transform:translate3d(${Math.round(x)}px,${Math.round(y)}px, 0); ` } closeOur () { this.isOpen = false const dom = document.getElementById('mobile-map_popup_content') dom.style.display = 'none' // var childs = document.getElementById('mobile-map_popup_content').getElementsByTagName('div') // if (childs.length > 0) { // for (var i = 0; i < childs.length; i++) { // document.getElementById('mobile-map_popup_content').removeChild(childs[i]) // } // } } } export default mobileDivForms