let leftNavsData = {
state: {
addIconsLayerIconstate: false,
addIconsLayerIconLayer: null,
addIconsLayerIconPopup: false, //控制编辑窗口显影
addIconsLayerIconPosition: [], //发送坐标
},
actions: {
chouseAddIconsLayerIcon({
state,
commit,
dispatch
}, val) {
//加载图层
commit("createAddIconsLayerIconLayer", {
viewer: val.viewer
})
//重置事件
state.addIconsLayerIconstate = false;
commit("set_closeMapClick", true); //关闭其他操作
//监听鼠标移动
val.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => {
if (state.addIconsLayerIconstate) { //事件完成
return;
}
commit("addIconsLayerIconmoveMessage", {
e: e,
b: "点击确认标注位置",
viewer: val.viewer
})
});
val.viewer.once(global.DC.MouseEventType.CLICK, (e) => {
commit("addIconsLayerIconmoveMessage", { //取消tip
e: e,
b: "",
viewer: val.viewer
})
dispatch("pcFlyView", { //飞入位置
jd: e.wgs84SurfacePosition.lng,
wd: +e.wgs84SurfacePosition.lat + 0.0002,
viewer: val.viewer,
});
//完成选点操作
state.addIconsLayerIconstate = true;
// commit("set_closeMapClick", false); //开启其他操作
if (val.fn) {
let lnglat = [e.wgs84SurfacePosition.lng,
e.wgs84SurfacePosition.lat
]
val.fn(lnglat)
}
});
},
addIconsLayerIcon({
state,
commit,
dispatch
}, val) {
const divIcon = new global.DC.DivIcon(
new global.DC.Position(
Number(val.lnglat[0]),
Number(val.lnglat[1]),
0
),
`
`
);
state.addIconsLayerIconLayer.addOverlay(divIcon);
//打开编辑窗口弹窗
new global.DC.DivForms(val.viewer, {
domId: "leftNavsAdd",
position: [
global.DC.Transform.transformWGS84ToCartesian(
new global.DC.Position(
Number(val.lnglat[0]),
Number(val.lnglat[1]),
Number(0)
)
),
],
});
commit("SET_addIconsLayerIconPosition", val.lnglat)
commit("SET_addIconsLayerIconPopup", true);
}
},
mutations: {
createAddIconsLayerIconLayer(state, val) {
if (state.addIconsLayerIconLayer == null) {
state.addIconsLayerIconLayer = new global.DC.HtmlLayer("addIconsLayerIconLayer");
val.viewer.addLayer(state.addIconsLayerIconLayer);
}
if (val.clear) {
state.addIconsLayerIconLayer.clear();
}
console.log(state.addIconsLayerIconLayer, "see")
},
addIconsLayerIconmoveMessage(state, val) {
console.log(val)
if (val.b == "") {
val.viewer.tooltip.enable = false;
} else {
val.viewer.tooltip.enable = true;
val.viewer.tooltip.showAt(val.e.windowPosition, val.b);
}
},
SET_addIconsLayerIconPopup(state, addIconsLayerIconPopup) {
state.addIconsLayerIconPopup = addIconsLayerIconPopup
if (!state.addIconsLayerIconPopup) { //关闭即关闭图层 并刷新标签
if (state.addIconsLayerIconLayer) {
state.addIconsLayerIconLayer.clear();
state.addIconsLayerIconLayer.remove();
state.addIconsLayerIconLayer = null;
}
}
},
SET_addIconsLayerIconPosition(state, addIconsLayerIconPosition) {
state.addIconsLayerIconPosition = addIconsLayerIconPosition
},
}
}
export default leftNavsData