From 81f54040c2cb65537c6c6e1db8358a39a57dea0d Mon Sep 17 00:00:00 2001
From: mayisheng <admin>
Date: Mon, 15 Aug 2022 16:14:01 +0800
Subject: [PATCH] 1
---
src/divForms/divForms.js | 154 ++++++++++++++++++--------------------------------
1 files changed, 56 insertions(+), 98 deletions(-)
diff --git a/src/divForms/divForms.js b/src/divForms/divForms.js
index 2df0e84..a72b9e9 100644
--- a/src/divForms/divForms.js
+++ b/src/divForms/divForms.js
@@ -7,141 +7,99 @@
* @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 {
+import store from '@/store/index'
+class DivForms {
/**
* @popup 存放 dom 相关
*
*/
- constructor (viewer, popup) {
+ 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 () {
+ get viewer() {
return this._viewer
}
- get title () {
- return this._title
- }
-
- get content () {
- return this._content
- }
-
- get popup () {
+ get popup() {
return this._popup
}
- get position () {
+ get position() {
return this._position
}
- appendPopup () {
+ appendPopup() {
/**
* @domId 存放 dom 的id, 多个数组,单个字符串
*/
- this.createVideoWindowAll(this._popup.domId, this._popup.className, this._position[0])
+ this.createVideoWindowAll(this._popup.domId)
}
// 创建元素并追加
- createVideoWindowAll (id, className, position) {
- var childs = document.getElementById('map_popup_content').getElementsByTagName('div')
+ createVideoWindowAll(id) {
+ this.clearMove(id)
- if (childs.length > 0) {
- for (var i = 0; i < childs.length; i++) {
- document.getElementById('map_popup_content').removeChild(childs[i])
- }
- }
+ this._viewer.scene.postRender.addEventListener(this.movePopup(id))
+ }
+ movePopup(id) {
var self = this
+ return function() {
+ var position = global.DC.Transform.transformCartesianToWGS84(self._position[0])
+ var positionChange = null
+ if (store.state.viewer.twoOrThree == '三 维') {
+ positionChange = global.DC.Transform.transformWGS84ToCartesian(
+ new global.DC.Position(
+ Number(position.lng),
+ Number(position.lat),
+ Number(0)
+ )
+ )
+ } else {
+ positionChange = global.DC.Transform.transformWGS84ToCartesian(
+ new global.DC.Position(
+ Number(position.lng),
+ Number(position.lat),
+ Number(50)
+ )
+ )
+ }
- var el = $("<div class=''></div>")
-
- var divBig = $("<div style='width: 100%; height: 100%;' class=''></div>")
-
- var divForms = $("<div class='divForms divForms-theme'></div>")
-
- var divFormsWrap = $("<div class='divForms-wrap'></div>")
-
- var area = $("<div class='area'></div>")
-
- var arrowLt = $("<div class='arrow-lt'></div>")
- var bT = $("<div class='b-t'></div>")
- var bR = $("<div class='b-r'></div>")
- var bB = $("<div class='b-b'></div>")
- var bL = $("<div class='b-l'></div>")
- var arrowRb = $("<div class='arrow-rb'></div>")
-
- var labelWrap = $("<div class='label-wrap'></div>")
- var titleDiv = $("<div class='title'></div>").text(this._title)
- var labelContent = $("<div class='label-content'></div>").append(this._content)
-
- labelWrap.append(titleDiv)
- labelWrap.append(labelContent)
-
- var bTL = $("<div class='b-t-l'></div>")
- var bBR = $("<div class='b-b-r'></div>")
-
- var arrow = $("<div class='arrow'></div>")
-
- 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(
+ const windowCoord = global.DC.Namespace.Cesium.SceneTransforms.wgs84ToWindowCoordinates(
self._viewer.scene,
- position
+ positionChange
)
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
+ clearMove(id) {
+ this._viewer.scene.postRender.removeEventListener(this.movePopup(id))
+ }
- document.getElementById(id).style.cssText = `
- visibility:visible;
- z-index:1;
- transform:translate3d(${Math.round(x)}px,${Math.round(y)}px, 0);
- `
+ positionPopUp(windowCoord, id) {
+ if (document.getElementById(id) == null || document.getElementById(id) == undefined) {
+ this._viewer.scene.postRender.removeEventListener(this.movePopup(id))
+ return
+ }
+ if (windowCoord != undefined && windowCoord.x && windowCoord.x != undefined && !Number.isNaN(windowCoord.x) &&
+ windowCoord.y && windowCoord.y != undefined && !Number.isNaN(windowCoord.y)) {
+ 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;
+ transform:translate3d(${Math.round(x)}px,${Math.round(y)}px, 0);
+ `
+ }
}
}
-export default divForms
+export default DivForms
\ No newline at end of file
--
Gitblit v1.9.3