suerprisePlus
2024-09-30 703703929e97b94ca1c1c5e35a578e5fe9d4cfea
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
import mapConfig from "./mapConfig";
import mapData from "./mapData";
import mapServer from "./mapServe.js";
import * as turf from "@turf/turf";
import store from "@/store";
const mapInit = {
  async Init() {
    // 默认设置底图
    this.addImageLayer();
    // 添加鼠标点击事件
    this.addMapClick();
 
    // window.earthCtrl = new SmartEarth.EarthCtrl(
    //     'sdkContainer',
    //     {
    //         // 隐藏默认底图
    //         defaultImagery: false,
    //         // 隐藏logo
    //         printLog: false,
    //         // sceneMode: SmartEarth.Cesium.SceneMode.SCENE2D
    //         StaticFileBaseUrl: '/CimSDK/',
    //     },
    //     {},
    //     {},
    //     () => {
    //         debugger
    //         // 初始化Cesium
    //         window.Cesium = SmartEarth.Cesium;
    //         // 初始化Viewer
    //         window.Viewer =  window.earthCtrl.Viewer;
    //         //设置地球颜色
    //         window.Viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString('#A9A9A9');
    //         window.earthCtrl.Viewer.imageryLayers.removeAll();
    //         // // 地形加载
    //         // const terrain = config.terrain;
    //         // if (terrain.isShow && terrain.isUrl) {
    //         //     const terrainProvider = await Cesium.CesiumTerrainProvider.fromUrl(terrain.isUrl, {
    //         //         requestWaterMask: true,
    //         //         requestVertexNormals: true,
    //         //     });
 
    //         //     window.Viewer.terrainProvider = terrainProvider;
    //         // }
    //         this.setStartViwer();
    //     }
    // );
  },
  // async setStartViwer() {
  //     // Viewer.scene.screenSpaceCameraController.maximumZoomDistance =50000
  //     // 默认设置底图
  //     this.addImageLayer();
  //     // 添加鼠标点击事件
  //     this.addMapClick();
  // },
  addImageLayer() {
    const baseLayer = mapData.baseLayer;
    // 添加天地图底图
    // mapServer.addLayer({
    //     serveType: 'tdMap',
    //     url: baseLayer.sUrl + baseLayer.vecLayer + baseLayer.lUrl,
    // });
    console.log(config.geoServer);
    // console.log(mapServer);
    // mapServer.addLayer({
    //   serveType: "WMS",
    //   url:
    // });
    const serverUrl = config.geoServer;
    const layer = new Cesium.WebMapServiceImageryProvider({
        url:serverUrl.url + serverUrl.wms,
        layers: serverUrl.layers[1],
        parameters: {
            transparent: true,
            format: 'image/png',
            srs: 'EPSG:4490',
            styles: '',
            cql_filter: '',
        },
        tileWidth: 512,
        tileHeight: 512,
    });
 
    window.Viewer.imageryLayers.addImageryProvider(layer);
    // 添加天地图标注
    // mapServer.addLayer({
    //     serveType: 'tdMap',
    //     url: baseLayer.sUrl + baseLayer.cvaLayer + baseLayer.lUrl,
    // });
 
    // 初始化视角
    this.setdefaultPerspective();
  },
  setdefaultPerspective() {
    mapConfig.sertCameraTo(mapData.defaultPerspective);
  },
  addMapClick() {
    // 为viewer添加鼠标点击事件监听
    window.Viewer.screenSpaceEventHandler.setInputAction(event => {
      // 获取点击位置的世界坐标
      var pickedFeature = window.Viewer.scene.pick(event.position);
      if (Cesium.defined(pickedFeature)) {
        console.log(pickedFeature);
        if (pickedFeature.id) {
          const obj = pickedFeature.id;
          var arr = [];
          for (var key in obj) {
            arr.push({
              name: key,
              val: obj[key]
            });
            store.dispatch("mapLayers/changeMapInfo", []);
            if (arr.length > 0) {
              store.dispatch("mapLayers/changeMapInfo", arr);
            }
          }
        }
      }
    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
  }
};
export default mapInit;