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,
|
// });
|
// });
|
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,
|
950.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
|
),
|
`
|
<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>
|
`
|
)
|
// 订阅事件
|
window.divIcononces.on(global.DC.MouseEventType.CLICK, (e) => {
|
// 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(window.divIcononces)
|
}
|
},
|
addLabelLayerIconMobelUse ({
|
state,
|
commit,
|
dispatch
|
}, val) {
|
const list = val.list
|
if (!window.labelLayer) {
|
window.labelLayer = new global.DC.HtmlLayer('labelLayer')
|
global.viewer.addLayer(window.labelLayer)
|
// state.myviewer = val.mviewer
|
}
|
if (val.clear) {
|
// window.labelLayer.remove();
|
window.labelLayer.clear()
|
}
|
if (val.add) { // 刷新列表
|
state.addSignList = !state.addSignList
|
return
|
}
|
for (const i in list) {
|
window.divIcon = new global.DC.DivIcon(
|
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>
|
`
|
)
|
// 订阅事件
|
window.divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
|
// 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(window.divIcon)
|
}
|
}
|
}
|
}
|
|
export default popupParams
|