suerprisePlus
2024-08-14 d4a3ca549f8755c2f87442c27217c3be39cab5cc
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
<template>
    <div id="mapContainer" class="mapContainer">
 
    </div>
</template>
 
<script>
import mapServer from '@/assets/js/mapSdk/mapServe';
import mapConfig from '@/assets/js/mapSdk/mapConfig';
import mapData from '@/assets/js/mapSdk/mapData';
import { layer_selectAll } from "@/api/mapView/map.js";
export default {
    name: 'mapView',
    mounted() {
        this.initMap();
    },
    methods: {
        async initMap() {
            window.earthCtrl = new SmartEarth.EarthCtrl('mapContainer', {
                // 隐藏默认底图
                defaultImagery: false,
                // 隐藏logo
                printLog: false,
                // sceneMode: SmartEarth.Cesium.SceneMode.SCENE2D
                StaticFileBaseUrl: '/CimSDK/',
                navigationOption: {
                    enableCompass: false,
                    enableZoomControls: false,
                    enableDistanceLegend: false,
                    enableCompassOuterRing: false,
                },
 
            });
 
            // 初始化Cesium
            window.Cesium = SmartEarth.Cesium;
            // 初始化Viewer
            window.Viewer = earthCtrl.viewer;
            //设置地球颜色
            Viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString('#A9A9A9');
            // 地形加载
            const terrain = config.terrain;
            if (terrain.isShow && terrain.isUrl) {
                const terrainProvider = await Cesium.CesiumTerrainProvider.fromUrl(terrain.isUrl, {
                    requestWaterMask: true,
                    requestVertexNormals: true,
                });
 
                Viewer.terrainProvider = terrainProvider;
            }
            // 默认设置底图
            this.addImageLayer();
        },
        addImageLayer() {
            const baseLayer = mapData.baseLayer;
            // 添加天地图底图
            mapServer.addLayer({
                serveType: 'tdMap',
                url: baseLayer.sUrl + baseLayer.vecLayer + baseLayer.lUrl,
            });
            // 添加天地图标注
            mapServer.addLayer({
                serveType: 'tdMap',
                url: baseLayer.sUrl + baseLayer.cvaLayer + baseLayer.lUrl,
            });
            // 初始化视角
            this.setdefaultPerspective();
        },
        setdefaultPerspective() {
            mapConfig.sertCameraTo(mapData.defaultPerspective);
            if (config.baseModel.url) {
                mapServer.addLayer(config.baseModel);
            }
            this.getSelectLayers();
 
 
        },
        getSelectLayers() {
            layer_selectAll().then(response => {
                if (response.data.code != 200) return
             
                const val = response.data.result.filter(item => {
     
                    if (item.type == 2 && item.isShow == 1) {
                
                        mapServer.addLayer(item)
                   
                    }
                    return item;
                })
              
            })
        },
    }
}
</script>
 
<style lang="scss" scoped>
.mapContainer {
    width: 100%;
    height: 100%;
}
</style>
<style>
.map-info-bar {
    display: none !important;
}
 
.el-form-item__label {
    color: white
}
</style>