import leftNavsData from './pc/leftNavsData' window.labelLayer = null window.divIcon = null window.divIcononces = null const popupParams = { state: { ...leftNavsData.state, popupBgUrl: null, pupupQRUrl: null, terminus: null, startingPoint: null, pointPosition: null, stateName: null, siteName: null, telephone: null, introduceText: null, detailsPopup: false, panoramaUrl: null, panoramaPopup: false, monitorUrl: null, monitorPopup: false, // 图集 popupImgAtlas: [], teachList: [], liveList: [], addTagPopup: false, addTagPosition: null, // labelLayer: null, // 自定义标签图层 addSignList: true, myviewer: null, nowlabelLayerData: {}, labelLayerDataShow: false, closeMapClick: false // 关闭地图点击,防止新增标签误触 }, mutations: { ...leftNavsData.mutations, SET_POPUPBGURL (state, popupBgUrl) { // console.log(popupBgUrl, "see33333") if (!popupBgUrl) { return } state.popupBgUrl = popupBgUrl }, SET_POPUPQRURL (state, pupupQRUrl) { state.pupupQRUrl = pupupQRUrl }, SET_TERMINUS (state, terminus) { state.terminus = terminus }, SET_STARTINGPOINT (state, startingPoint) { state.startingPoint = startingPoint }, SET_POINTPOSITION (state, pointPosition) { state.pointPosition = pointPosition }, SET_STATENAME (state, stateName) { state.stateName = stateName }, SET_SITENAME (state, siteName) { state.siteName = siteName }, SET_TELEPHONE (state, telephone) { state.telephone = telephone }, SET_INTRODUCETEXT (state, introduceText) { state.introduceText = introduceText }, SET_PANORAMAURL (state, panoramaUrl) { state.panoramaUrl = panoramaUrl }, SET_PANORAMAPOPUP (state, panoramaPopup) { state.panoramaPopup = panoramaPopup }, SET_MONITORURL (state, monitorUrl) { state.monitorUrl = monitorUrl }, SET_MONITORPOPUP (state, monitorPopup) { state.monitorPopup = monitorPopup }, SET_DETAILSPOPUP (state, detailsPopup) { state.detailsPopup = detailsPopup }, SET_POPUPIMGATLAS (state, popupImgAtlas) { state.popupImgAtlas = popupImgAtlas }, SET_TEACHLIST (state, teachList) { state.teachList = teachList }, SET_LIVELIST (state, liveList) { state.liveList = liveList }, SET_ADDTAGPOPUP (state, addTagPopup) { state.addTagPopup = addTagPopup }, SET_ADDTAGPOSITION (state, addTagPosition) { state.addTagPosition = addTagPosition }, initLabelLayer (state, val) { if (!window.labelLayer) { window.labelLayer = new global.DC.HtmlLayer('labelLayer') val.addLayer(window.labelLayer) } state.myviewer = val }, clearLabelLayerIcon (state, val) { if (window.labelLayer) { window.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 box = 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_MONITORPOPUP', false) commit('SET_PANORAMAPOPUP', false) 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) { global.viewer.camera.setView({ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 // fromDegrees()方法,将经纬度和高程转换为世界坐标 destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( +val.jd, +val.wd, 300.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) { const list = val.list if (val.clear) { // window.labelLayer.remove(); window.labelLayer.clear() } if (val.add) { // 刷新列表 state.addSignList = !state.addSignList return } for (const i in list) { window.divIcononces = new global.DC.DivIcon( new global.DC.Position( Number(list[i].jd), Number(list[i].wd), 0 ), `