基于北京SDK的方案预演功能
surprise
2024-05-07 087510aa88b0a6b6b5c648907e9dd52394621d47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
import store from "@/store";
import configTool from "@/assets/js/tool/configTool";
const rightManager = {
  effect: null,
  content: null,
  titleName: null,
  addEvent() {
    document
      .getElementById("generate-sql")
      .addEventListener("mouseover", (e) => {
        document.getElementById("right-menu2").style.display = "block";
      });
    document
      .getElementById("generate-sql")
      .addEventListener("mouseout", (e) => {
        document.getElementById("right-menu2").style.display = "none";
      });
    document.getElementById("copy").addEventListener("mouseover", (e) => {
      document.getElementById("right-menu3").style.display = "block";
    });
    document.getElementById("copy").addEventListener("mouseout", (e) => {
      document.getElementById("right-menu3").style.display = "none";
    });
  },
  setLayerOpen() {
    layer.open({
      type: 1,
      title: this.title,
      content: this.content,
      // 宽高:如果是100%就是满屏
 
      // 坐标:auto(默认坐标,即垂直水平居中),具体当文档:https://www.layui.com/doc/modules/layer.html#offset
      offset: "auto",
 
      closeBtn: 1,
      // 遮罩:默认:0.3透明度的黑色背景('#000')
      shade: 0.3,
      // 是否点击遮罩关闭:默认:false
      shadeClose: false,
      // 自动关闭所需毫秒:默认:0不会自动关闭
      time: 0,
      // 最大最小化:默认:false
      maxmin: false,
      // 固定:默认:true
      fixed: true,
      // 是否允许拉伸:默认:true
      resize: false,
      // 层叠顺序:默认:19891014,一般用于解决和其它组件的层叠冲突
      btn: ["确认"],
      btn1: function (index, layero) {
        layer.close(index);
      },
      zIndex: 19891014,
    });
  },
 
  setContent(res) {
    this.content =
      "<table calss='layerContent'><tr><th>坐标系</th><th>经度</th><th>纬度</th></tr><tr><th>十进制</th><th>" +
      res.lon +
      "</th><th>" +
      res.lat +
      "</th></tr></table>";
 
    this.setLayerOpen();
  },
  setMenuClick(res) {
    switch (res) {
      case "显示此处经纬度":
        this.title = "位置信息";
        this.setContent(store.state.rightCoodinate);
        break;
      case "显示当前视角":
        this.title = "视角信息";
        this.setContent(configTool.getViewerCamera());
        break;
      case "开启深度检测":
        Viewer.scene.globe.depthTestAgainstTerrain = true;
        break;
      case "关闭深度检测":
        Viewer.scene.globe.depthTestAgainstTerrain = false;
        break;
      case "开启雨天":
        if (this.effect) {
          earthCtrl.environment.disableEffect(this.effect);
          this.effect = null;
        }
        this.effect = "rain";
        let rainValue = {
          test1: 2,
          test2: 0.3,
          test3: -0.4,
          test4: 1.0,
        };
        earthCtrl.environment.showEffect("rain");
        break;
      case "开启雾天":
        if (this.effect) {
          earthCtrl.environment.disableEffect(this.effect);
          this.effect = null;
        }
        this.effect = "fog";
        earthCtrl.environment.showEffect("fog");
        break;
      case "开启雪天":
        this.effect = "snow";
        let snowValue = {
          test1: 2,
          test2: 1.0,
          test3: 0.5,
          test4: 0.5,
        };
        earthCtrl.environment.showEffect("snow");
        break;
      case "关闭天气":
        if (this.effect) {
          earthCtrl.environment.disableEffect(this.effect);
          this.effect = null;
        }
 
        break;
      case "绕此处环绕":
        var obj = store.state.rightCoodinate;
        this.pointFly = earthCtrl.camera.rotateCamera({
          lon: obj.lon,
          lat: obj.lat,
          distance: 1000,
          pitch: -30,
        });
 
        break;
      case "关闭绕此处环绕":
        break;
      case "定位到此处":
        var obj = store.state.rightCoodinate;
        configTool.setMapFly(obj);
        break;
    }
  },
};
export default rightManager;