suerprisePlus
2024-09-30 703703929e97b94ca1c1c5e35a578e5fe9d4cfea
src/views/visual/mapView/index.vue
@@ -51,20 +51,20 @@
</template>
<script>
import mapInit from '@/assets/js/mapSdk/index.js';
import mapInit from '../../../assets/js/mapSdk/index.js';
import mapData from '@/assets/js/mapSdk/mapData.js';
import layerManager from './layerManager.vue';
import menuManager from '@/assets/js/mapSdk/menuManager.js';
import location from './location.vue';
import knowledge from './knowledge.vue';
import lineRoaming from './lineRoaming.vue';
import { layer_selectAll } from "@/api/mapView/map.js";
import { layer_selectAll } from '@/api/mapView/map.js';
import configTools from '@/assets/js/configTools';
import store from "@/store";
import store from '@/store';
import mapServer from '@/assets/js/mapSdk/mapServe';
import undergroundMode from './undergroundMode.vue';
import dataAnalysis from './dataAnalysis.vue';
import dataStatistics from './dataStatistics.vue'
import dataStatistics from './dataStatistics.vue';
import attributeInfo from './attributeInfo.vue';
import mapInfo from './mapInfo.vue';
export default {
@@ -77,22 +77,26 @@
            childMenuIsShow: true,
            childMenuOption: [],
            childObj: [],
            showEarth: false,
        };
    },
    created() {
        console.log('created');
    },
    mounted() {
        this.showEarth = true;
        this.mapViewStart();
        this.$busEvent.$on('CHANGE_MAPINFO', res => {
            this.setMapInfo(res)
        this.$busEvent.$on('CHANGE_MAPINFO', (res) => {
            this.setMapInfo(res);
        });
    },
    beforeCreate() {
        console.log('beforeCreate');
    },
    beforeDestroy() {
        this.$store.dispatch('mapLayers/changeLayerTree', [])
        this.$store.dispatch('mapLayers/changeDefaultLayer', [])
        this.$store.dispatch('mapLayers/changeLayerTree', []);
        this.$store.dispatch('mapLayers/changeDefaultLayer', []);
    },
    methods: {
        setMapInfo(res) {
@@ -102,41 +106,85 @@
                setTimeout(() => {
                    this.$refs && this.$refs.mapInfo && this.$refs.mapInfo.open();
                }, 200);
            }
        },
        mapViewStart() {
            this.menuOption = mapData.menuData;
            this.$nextTick(() => {
                mapInit.Init();
                setTimeout(() => {
                  if(config.baseModel.url){
                    mapServer.addLayer(config.baseModel);
                  }
                    this.getSelectLayers();
                }, 500);
            });
            window.earthCtrl = new SmartEarth.EarthCtrl(
                'sdkContainer',
                {
                    // 隐藏默认底图
                    defaultImagery: false,
                    // 隐藏logo
                    printLog: false,
                    // sceneMode: SmartEarth.Cesium.SceneMode.SCENE2D
                    StaticFileBaseUrl: '/CimSDK/',
                },
                {},
                {},
                () => {
                    setTimeout(() => {
                        mapServer.layerList = [];
                        //初始化Cesium
                        window.Cesium = SmartEarth.Cesium;
                        // 初始化Viewer
                        window.Viewer = window.earthCtrl.viewer;
                        //设置地球颜色
                        window.Viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString('#A9A9A9');
                        window.Viewer.imageryLayers.removeAll();
                        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);
                        this.setStart();
                    }, 500);
                }
            );
        },
        setStart() {
            mapInit.Init();
            setTimeout(() => {
                if (config.baseModel.url) {
                    var model = window.earthCtrl.factory.create3DTilesets({
                        url: config.baseModel.url
                    });
                }
                this.getSelectLayers();
            }, 500);
        },
        getSelectLayers() {
            layer_selectAll().then(response => {
                if (response.data.code != 200) return
            layer_selectAll().then((response) => {
                if (response.data.code != 200) return;
                const defaultLayer = [];
                const val = response.data.result.filter(item => {
                const val = response.data.result.filter((item) => {
                    item.checked = false;
                    if (item.type == 2 && item.isShow == 1) {
                        item.checked = true;
                        mapServer.addLayer(item)
                        defaultLayer.push(item.id)
                        mapServer.addLayer(item);
                        defaultLayer.push(item.id);
                    }
                    return item;
                })
                this.$store.dispatch('mapLayers/changeDefaultLayer', defaultLayer)
                var obj = configTools.getTreeData(val)
                this.$store.dispatch('mapLayers/changeLayerTree', obj)
            })
                });
                this.$store.dispatch('mapLayers/changeDefaultLayer', defaultLayer);
                var obj = configTools.getTreeData(val);
                this.$store.dispatch('mapLayers/changeLayerTree', obj);
            });
        },
        setMenuClose() {
            this.menuIsShow = !this.menuIsShowx;