/* * @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' // 核心包 var $ = window.$ DC.use(DcCore) // 安装DC核心库 class divForms { /** * @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() } 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) { var childs = document.getElementById('map_popup_content').getElementsByTagName('div') if (childs.length > 0) { for (var i = 0; i < childs.length; i++) { document.getElementById('map_popup_content').removeChild(childs[i]) } } var self = this var el = $("
") var divBig = $("") var divForms = $("") var divFormsWrap = $("") var area = $("") var arrowLt = $("") var bT = $("") var bR = $("") var bB = $("") var bL = $("") var arrowRb = $("") var labelWrap = $("") var titleDiv = $("").text(this._title) var labelContent = $("").append(this._content) labelWrap.append(titleDiv) labelWrap.append(labelContent) var bTL = $("") var bBR = $("") var arrow = $("") area.append(arrowLt) area.append(bT) area.append(bR) area.append(bB) area.append(bL) area.append(arrowRb) area.append(labelWrap) divFormsWrap.append(area) divFormsWrap.append(bTL) divFormsWrap.append(bBR) divForms.append(divFormsWrap) divForms.append(arrow) divBig.append(divForms) el.append(divBig) el.attr('id', id) el.addClass(className || '') $('#map_popup_content').append(el) this._viewer.scene.postRender.addEventListener(function () { const windowCoord = DC.Namespace.Cesium.SceneTransforms.wgs84ToWindowCoordinates( self._viewer.scene, position ) self.positionPopUp(windowCoord, id) }) } positionPopUp (windowCoord, id) { const x = windowCoord.x const y = windowCoord.y - document.getElementById(id).offsetHeight // x = windowCoord.x - document.getElementById(id).offsetWidth document.getElementById(id).style.cssText = ` visibility:visible; z-index:1; transform:translate3d(${Math.round(x)}px,${Math.round(y)}px, 0); ` } } export default divForms