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/store/modules/popupParams.js | 147 +++++++++++++++++++++++++++++++++++-------------
1 files changed, 106 insertions(+), 41 deletions(-)
diff --git a/src/store/modules/popupParams.js b/src/store/modules/popupParams.js
index 6950f51..3789451 100644
--- a/src/store/modules/popupParams.js
+++ b/src/store/modules/popupParams.js
@@ -1,4 +1,8 @@
import leftNavsData from './pc/leftNavsData'
+window.labelLayer = null
+window.divIcon = null
+window.divIcononces = null
+
const popupParams = {
state: {
...leftNavsData.state,
@@ -23,7 +27,7 @@
addTagPopup: false,
addTagPosition: null,
- labelLayer: null, // 自定义标签图层
+ // labelLayer: null, // 自定义标签图层
addSignList: true,
myviewer: null,
nowlabelLayerData: {},
@@ -97,16 +101,16 @@
state.addTagPosition = addTagPosition
},
initLabelLayer (state, val) {
- if (!state.labelLayer) {
- state.labelLayer = new global.DC.HtmlLayer('labelLayer')
- val.addLayer(state.labelLayer)
+ if (!window.labelLayer) {
+ window.labelLayer = new global.DC.HtmlLayer('labelLayer')
+ val.addLayer(window.labelLayer)
}
state.myviewer = val
},
clearLabelLayerIcon (state, val) {
- if (state.labelLayer) {
- state.labelLayer.clear()
+ if (window.labelLayer) {
+ window.labelLayer.clear()
}
},
openLabelLayer (state, val) {
@@ -149,7 +153,7 @@
// item: item,
// });
// });
- var popup = new global.DC.DivForms(state.viewer, {
+ var box = new global.DC.DivForms(state.viewer, {
domId: 'divFormsDomBox',
position: [
global.DC.Transform.transformWGS84ToCartesian(
@@ -203,13 +207,13 @@
commit,
dispatch
}, val) {
- val.viewer.camera.setView({
+ global.viewer.camera.setView({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+val.jd,
+val.wd,
- 400.0
+ 300.0
),
orientation: {
// 指向
@@ -238,15 +242,15 @@
}, val) {
const list = val.list
if (val.clear) {
- // state.labelLayer.remove();
- state.labelLayer.clear()
+ // window.labelLayer.remove();
+ window.labelLayer.clear()
}
if (val.add) { // 刷新列表
state.addSignList = !state.addSignList
return
}
for (const i in list) {
- const divIcon = new global.DC.DivIcon(
+ window.divIcononces = new global.DC.DivIcon(
new global.DC.Position(
Number(list[i].jd),
Number(list[i].wd),
@@ -264,14 +268,18 @@
`
)
// 订阅事件
- divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+ window.divIcononces.on(global.DC.MouseEventType.CLICK, (e) => {
+ if (state.pinchFlag == true) {
+ return
+ }
+
// console.log(e);
// return;
// 定制化窗体
- const position = e.position
+ // const position = e.position
const lntLat = [e.overlay._position._lng, e.overlay._position._lat]
// console.log(position, lntLat, list[i], state.myviewer, "see")
- new global.DC.DivForms(state.myviewer, {
+ var box = new global.DC.DivForms(global.viewer, {
domId: 'labelLayerid',
position: [
global.DC.Transform.transformWGS84ToCartesian(
@@ -283,13 +291,13 @@
)
]
})
- state.myviewer.camera.setView({
+ global.viewer.camera.setView({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
lntLat[0],
lntLat[1],
- 400.0
+ 950.0
),
orientation: {
// 指向
@@ -304,7 +312,7 @@
data: list[i]
})
})
- state.labelLayer.addOverlay(divIcon)
+ window.labelLayer.addOverlay(window.divIcononces)
}
},
addLabelLayerIconMobelUse ({
@@ -313,46 +321,57 @@
dispatch
}, val) {
const list = val.list
- if (!state.labelLayer) {
- state.labelLayer = new global.DC.HtmlLayer('labelLayer')
- val.mviewer.addLayer(state.labelLayer)
- state.myviewer = val.mviewer
+ if (!window.labelLayer) {
+ window.labelLayer = new global.DC.VectorLayer('labelLayer')
+ global.viewer.addLayer(window.labelLayer)
+ // state.myviewer = val.mviewer
}
if (val.clear) {
- // state.labelLayer.remove();
- state.labelLayer.clear()
+ // window.labelLayer.remove();
+ window.labelLayer.clear()
}
if (val.add) { // 刷新列表
state.addSignList = !state.addSignList
return
}
for (const i in list) {
- const divIcon = new global.DC.DivIcon(
+ const billboard = new global.DC.Billboard(
+ new global.DC.Position(
+ Number(list[i].jd),
+ Number(list[i].wd),
+ 0
+ ), 'https://map.hit.edu.cn/images/tarrow_xq.png')
+
+ const label = new global.DC.Label(
new global.DC.Position(
Number(list[i].jd),
Number(list[i].wd),
0
),
- `
- <div class="tag-entitys-box">
- <div class="tag-content">
- ${list[i].name}
- </div>
- <div class="tag-angle-content">
- <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
- </div>
- </div>
- `
+ list[i].name
)
+
+ label.setStyle({
+ fillColor: global.DC.Color.RED,
+ style: global.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE,
+ outlineColor: global.DC.Color.WHITE, // 边框颜色
+ outlineWidth: 8, // 边框大小,
+ font: '12px sans-serif',
+ pixelOffset: { x: 0, y: -24 }
+ })
+
// 订阅事件
- divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+ billboard.on(global.DC.MouseEventType.CLICK, (e) => {
+ if (state.pinchFlag == true) {
+ return
+ }
// console.log(e);
// return;
// 定制化窗体
- const position = e.position
+ // const position = e.position
const lntLat = [e.overlay._position._lng, e.overlay._position._lat]
// console.log(position, lntLat, list[i], state.myviewer, "see")
- new global.DC.DivForms(state.myviewer, {
+ var box = new global.DC.DivForms(global.viewer, {
domId: 'labelLayerid',
position: [
global.DC.Transform.transformWGS84ToCartesian(
@@ -364,13 +383,13 @@
)
]
})
- state.myviewer.camera.setView({
+ global.viewer.camera.setView({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
lntLat[0],
lntLat[1],
- 400.0
+ 950.0
),
orientation: {
// 指向
@@ -385,7 +404,53 @@
data: list[i]
})
})
- state.labelLayer.addOverlay(divIcon)
+
+ label.on(global.DC.MouseEventType.CLICK, (e) => {
+ if (state.pinchFlag == true) {
+ return
+ }
+ // console.log(e);
+ // return;
+ // 定制化窗体
+ // const position = e.position
+ const lntLat = [e.overlay._position._lng, e.overlay._position._lat]
+ // console.log(position, lntLat, list[i], state.myviewer, "see")
+ var box = new global.DC.DivForms(global.viewer, {
+ domId: 'labelLayerid',
+ position: [
+ global.DC.Transform.transformWGS84ToCartesian(
+ new global.DC.Position(
+ Number(lntLat[0]),
+ Number(lntLat[1]),
+ Number(0)
+ )
+ )
+ ]
+ })
+ global.viewer.camera.setView({
+ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ lntLat[0],
+ lntLat[1],
+ 950.0
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ commit('openLabelLayer', {
+ show: true,
+ data: list[i]
+ })
+ })
+
+ window.labelLayer.addOverlay(billboard) // 加入图标
+ window.labelLayer.addOverlay(label)
}
}
}
--
Gitblit v1.9.3