From 01f9c88fd0ee768155e5b341c2bb95a85bc11a08 Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Sat, 05 Mar 2022 17:49:36 +0800
Subject: [PATCH] ++
---
src/store/modules/popupParams.js | 212 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 190 insertions(+), 22 deletions(-)
diff --git a/src/store/modules/popupParams.js b/src/store/modules/popupParams.js
index 93ab92b..edbfa68 100644
--- a/src/store/modules/popupParams.js
+++ b/src/store/modules/popupParams.js
@@ -1,5 +1,7 @@
+import leftNavsData from './pc/leftNavsData'
const popupParams = {
state: {
+ ...leftNavsData.state,
popupBgUrl: null,
pupupQRUrl: null,
terminus: null,
@@ -23,10 +25,20 @@
labelLayer: null, //自定义标签图层
addSignList: true,
+ myviewer: null,
+ nowlabelLayerData: {},
+ labelLayerDataShow: false,
+
+ closeMapClick: false, //关闭地图点击,防止新增标签误触
},
mutations: {
+ ...leftNavsData.mutations,
SET_POPUPBGURL(state, popupBgUrl) {
- state.popupBgUrl = popupBgUrl
+ // console.log(popupBgUrl, "see33333")
+ if (!popupBgUrl) {
+ return;
+ }
+ state.popupBgUrl = popupBgUrl;
},
SET_POPUPQRURL(state, pupupQRUrl) {
state.pupupQRUrl = pupupQRUrl
@@ -89,8 +101,142 @@
state.labelLayer = new global.DC.HtmlLayer("labelLayer");
val.addLayer(state.labelLayer);
}
+ state.myviewer = val;
},
- addLabelLayerIcon(state, val) {
+
+ clearLabelLayerIcon(state, val) {
+ if (state.labelLayer) {
+ state.labelLayer.clear();
+ }
+ },
+ openLabelLayer(state, val) {
+ // console.log(val, "see")
+ if (val.show) {
+ state.nowlabelLayerData = val.data;
+ state.labelLayerDataShow = true;
+ } else {
+ state.nowlabelLayerData = {};
+ state.labelLayerDataShow = false;
+ }
+ },
+ CLEAR_ALL(state, param) {
+ state.siteName = param
+ state.introduceText = param
+ state.telephone = param
+ state.panoramaUrl = param
+ state.monitorUrl = param
+ state.popupBgUrl = param
+ state.teachList = []
+ state.liveList = []
+ },
+ set_closeMapClick(state, val) {
+ state.closeMapClick = val;
+ }
+ },
+ actions: {
+ ...leftNavsData.actions,
+ openPopups({
+ state,
+ commit,
+ dispatch
+ }, value) {
+ // //订阅事件
+ // divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+ // console.log(item);
+ // that.openPopups({
+ // lng: e.overlay.position.lng,
+ // lat: e.overlay.position.lat,
+ // item: item,
+ // });
+ // });
+ var popup = new global.DC.DivForms(state.viewer, {
+ domId: "divFormsDomBox",
+ position: [
+ global.DC.Transform.transformWGS84ToCartesian(
+ new global.DC.Position(
+ Number(value.lng),
+ Number(value.lat),
+ Number(value.alt || 0)
+ )
+ ),
+ ],
+ });
+ dispatch("setOurDataInPoput", value);
+ dispatch("pcFlyView", {
+ jd: value.lng,
+ wd: value.lat,
+ viewer: this.viewer,
+ });
+ },
+ setOurDataInPoput({
+ state,
+ commit,
+ dispatch
+ }, value) {
+ //弹窗使用方法
+
+ commit("CLEAR_ALL", null);
+
+
+ commit("SET_STATENAME", value.item.mechanismname);
+ commit("SET_PANORAMAURL", value.item.panoramaurl);
+ commit("SET_INTRODUCETEXT", value.item.introduce);
+ var imgArr = [];
+ if (value.item.tpurl) {
+ imgArr = value.item.tpurl.split(",");
+ }
+ commit("SET_POPUPBGURL", imgArr[0]);
+ commit('SET_POPUPIMGATLAS', imgArr)
+ commit("SET_POPUPQRURL", value.item.codeurl);
+ commit("SET_POINTPOSITION", [
+ Number(value.lng),
+ Number(value.lat),
+ Number(0),
+ Number(0),
+ Number(-90),
+ Number(0),
+ ]);
+ commit("SET_DETAILSPOPUP", true);
+ },
+ pcMoveView({
+ state,
+ commit,
+ dispatch
+ }, val) {
+ console.log(val, "see1")
+ val.viewer.camera.setView({
+ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ +val.jd,
+ +val.wd,
+ 400.0
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0,
+ },
+ });
+ },
+ pcFlyView({
+ state,
+ commit,
+ dispatch
+ }, val) {
+ val.viewer.flyToPosition(
+ new global.DC.Position(Number(val.jd), Number(val.wd), Number(300), Number(0), Number(-90), Number(0)),
+ function () {},
+ 2
+ )
+ },
+ addLabelLayerIcon({
+ state,
+ commit,
+ dispatch
+ }, val) {
let list = val.list;
if (val.clear) {
// state.labelLayer.remove();
@@ -98,9 +244,9 @@
}
if (val.add) { //刷新列表
state.addSignList = !state.addSignList;
+ return;
}
for (let i in list) {
- console.log(list[i], 112233)
const divIcon = new global.DC.DivIcon(
new global.DC.Position(
Number(list[i].jd),
@@ -118,28 +264,50 @@
</div>
`
);
+ //订阅事件
+ divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+ // console.log(e);
+ // return;
+ // 定制化窗体
+ let position = e.position,
+ lntLat = [e.overlay._position._lng, e.overlay._position._lat];
+ // console.log(position, lntLat, list[i], state.myviewer, "see")
+ new global.DC.DivForms(state.myviewer, {
+ domId: "labelLayerid",
+ position: [
+ global.DC.Transform.transformWGS84ToCartesian(
+ new global.DC.Position(
+ Number(lntLat[0]),
+ Number(lntLat[1]),
+ Number(0)
+ )
+ ),
+ ],
+ });
+ state.myviewer.camera.setView({
+ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ lntLat[0],
+ lntLat[1],
+ 400.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]
+ })
+ });
state.labelLayer.addOverlay(divIcon);
}
},
- clearLabelLayerIcon(state, val) {
- if (state.labelLayer) {
- state.labelLayer.clear();
- }
- },
-
- CLEAR_ALL(state, param) {
- state.siteName = param
- state.introduceText = param
- state.telephone = param
- state.panoramaUrl = param
- state.monitorUrl = param
- state.popupBgUrl = param
- state.teachList = []
- state.liveList = []
- }
- },
- actions: {
-
}
}
--
Gitblit v1.9.3