shuishen
2022-03-28 9fa6e9ea26470378bec1628de2968d52c3bc135f
兼容问题处理
4 files modified
1 files added
2068 ■■■■ changed files
src/components/map/components/dimension copy 2.vue 1249 ●●●●● patch | view | raw | blame | history
src/components/map/components/dimension.vue 310 ●●●● patch | view | raw | blame | history
src/components/map/index.vue 62 ●●●● patch | view | raw | blame | history
src/pcviews/tool/sign.vue 365 ●●●● patch | view | raw | blame | history
src/store/modules/popupParams.js 82 ●●●● patch | view | raw | blame | history
src/components/map/components/dimension copy 2.vue
New file
@@ -0,0 +1,1249 @@
<template>
    <div class="dimension-cut">
        <el-button
            v-show="btnGroupShow"
            size="mini"
            class="three-stm"
            type="primary"
            @click="locationSTM"
        >s3m</el-button>
        <el-button
            v-show="btnGroupShow"
            size="mini"
            class="sat-stm"
            type="primary"
            @click="locationSAT"
        >科技</el-button>
        <el-button
            v-show="btnGroupShow"
            size="mini"
            class="sat-tc"
            type="primary"
            @click="locationTC"
        >热力图</el-button>
        <el-radio-group v-model="dimensionValue" size="medium" @change="dimensionChange">
            <el-radio-button label="三 维"></el-radio-button>
            <el-radio-button label="真三维"></el-radio-button>
        </el-radio-group>
    </div>
</template>
<script>
import axios from 'axios'
import { mapGetters } from 'vuex'
import { getDetail } from '@/api/pc/public/arc'
let tilesetLayer = null
let tileset = null
let silhouetteBlue = null
let baseMapLayer = null
let DefaultAreaLayer = null
let layerGroup = null
let select = null
let streenMlayer = null
let layerSat = null
let layerSATtwo = null
let tcLayer = null
// const wallLayer = null
export default {
    name: 'dimension',
    data () {
        return {
            btnGroupShow: false,
            dimensionValue: '三 维',
            // 建筑2.5D地图
            // 建筑2.5D面数据
            titlesetLayerFlag: false,
            wallArr: [
                [114.04006133, 27.628038, 100],
                [114.04020623, 27.62809403, 100],
                [114.04025389, 27.62819931, 100],
                [114.04032823, 27.62827743, 100],
                [114.0410871, 27.62918798, 100],
                [114.04001425, 27.62986815, 100],
                [114.04001615, 27.62986817, 100],
                [114.03992451, 27.62998379, 100],
                [114.03967878, 27.62999684, 100],
                [114.03940001, 27.63008698, 100],
                [114.03951075, 27.63047135, 100],
                [114.03946107, 27.63056152, 100],
                [114.03927571, 27.63072325, 100],
                [114.03871751, 27.63128845, 100],
                [114.03872079, 27.63135594, 100],
                [114.03869211, 27.63139169, 100],
                [114.03960653, 27.63200726, 100],
                [114.03945732, 27.63215207, 100],
                [114.03760837, 27.63092563, 100],
                [114.03770336, 27.63078037, 100],
                [114.03782957, 27.63072932, 100],
                [114.03787347, 27.63068209, 100],
                [114.03824591, 27.62887902, 100],
                [114.03837943, 27.6289105, 100],
                [114.03863853, 27.62868839, 100],
                [114.03905656, 27.62843592, 100],
                [114.03954722, 27.62819644, 100],
                [114.04006133, 27.628038, 100]
            ],
            mapCenter: [116.35381525,
                27.95839468, 400.0]
            // mapCenter: [115.871863, 28.743861, 400.0]
        }
    },
    computed: {
        ...mapGetters([
            'viewerExist',
            // 校区内导航的显示关闭
            'campusNavFlag',
            'orgNavBarFlag',
            'arcNavBarFlag',
            'closeMapClick' // 关闭地图点击,防止新增标签误触
        ])
    },
    created () {
        select = {
            overlay: null,
            color: null
        }
    },
    watch: {
        viewerExist: {
            immediate: true,
            handler (newCode, oldCode) {
                if (this.titlesetLayerFlag == false && newCode == true) {
                    var that = this
                    silhouetteBlue =
                        global.DC.Namespace.Cesium.PostProcessStageLibrary.createEdgeDetectionStage()
                    silhouetteBlue.uniforms.color =
                        global.DC.Namespace.Cesium.Color.fromBytes(9, 162, 40)
                    silhouetteBlue.uniforms.length = 0.01
                    silhouetteBlue.selected = []
                    global.viewer.scene.postProcessStages.add(
                        global.DC.Namespace.Cesium.PostProcessStageLibrary.createSilhouetteStage(
                            [silhouetteBlue]
                        )
                    )
                    global.viewer.imageryLayers.addImageryProvider(
                        new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                            url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=9ae78c51a0a28f06444d541148496e36',
                            subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
                            format: 'image/jpeg',
                            show: true,
                            maximumLevel: 18
                        })
                    )
                    global.viewer.imageryLayers.addImageryProvider(
                        new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                            url: 'http://t{s}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=9ae78c51a0a28f06444d541148496e36',
                            subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
                            format: 'image/jpeg',
                            show: true,
                            maximumLevel: 18
                        })
                    )
                    // global.viewer.imageryLayers.addImageryProvider(
                    //     new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
                    //         url: ' http://t1.tianditu.gov.cn/vec_w/wmts?tk=9ae78c51a0a28f06444d541148496e36',
                    //         type: 'wmts',
                    //         layer: 'vec',
                    //         style: 'default',
                    //         format: 'tiles',
                    //         tileMatrixSetID: 'w',
                    //         show: true,
                    //         maximumLevel: 18
                    //     })
                    // )
                    // global.viewer.imageryLayers.addImageryProvider(
                    //     new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
                    //         url: ' http://t1.tianditu.gov.cn/cva_w/wmts?tk=9ae78c51a0a28f06444d541148496e36',
                    //         type: 'wmts',
                    //         layer: 'cva',
                    //         style: 'default',
                    //         format: 'tiles',
                    //         tileMatrixSetID: 'w',
                    //         show: true,
                    //         maximumLevel: 18
                    //     })
                    // )
                    const videoLayer = new global.DC.CameraVideoLayer('video-layer').addTo(
                        global.viewer
                    )
                    const cameraVideo = new global.DC.CameraVideo(
                        new global.DC.Position(114.03935976, 27.62939045, 100.25, 4.2, -90),
                        document.getElementById('video')
                    )
                    cameraVideo.setStyle({
                        fov: 30,
                        far: 120,
                        near: 1,
                        aspectRatio: 1.3,
                        alpha: 0.7
                    })
                    videoLayer.addOverlay(cameraVideo)
                    baseMapLayer =
                        global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                            url: '/wp/{z}/{x}/{y}.png',
                            fileExtension: 'png'
                            // minimumLevel: 19
                        }))
                    global.viewer.imageryLayers.addImageryProvider(
                        new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
                            url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer/WMTS',
                            layer: 'fzsw2019',
                            style: 'default',
                            tileMatrixSetID: 'default028mm',
                            format: 'image/jpgpng',
                            tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
                            maximumLevel: 19,
                            tileMatrixLabels: [
                                '0',
                                '1',
                                '2',
                                '3',
                                '4',
                                '5',
                                '6',
                                '7',
                                '8',
                                '9',
                                '10',
                                '11',
                                '12',
                                '13',
                                '14',
                                '15',
                                '16',
                                '17',
                                '18',
                                '19'
                            ]
                        })
                    )
                    // global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({
                    //     url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer',
                    //     layer: 'fzsw2019',
                    // }))
                    // wallLayer = new global.DC.VectorLayer('wallLayer')
                    // global.viewer.addLayer(wallLayer)
                    // that.wallArr.forEach((item) => {
                    //     item = item.join(',')
                    // })
                    // that.wallArr = that.wallArr.join(';')
                    // const wall = new global.DC.Wall(that.wallArr)
                    // wall.setStyle({
                    //     material: new global.DC.WallTrailMaterialProperty({
                    //         color: global.DC.Namespace.Cesium.Color.fromBytes(0, 142, 255, 150),
                    //         // color: global.DC.Color.CYAN,
                    //         speed: 10
                    //     })
                    // })
                    // wallLayer.addOverlay(wall)
                    // global.viewer.camera.setView({
                    //     // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    //     // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    //     destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.03928791, 27.62954732, 400.0),
                    //     orientation: {
                    //         // 指向
                    //         heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                    //         // 视角
                    //         pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                    //         roll: 0.0
                    //     }
                    // })
                    // setTimeout(() => {
                    //     global.viewer.camera.flyTo({
                    //         // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    //         // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    //         destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.0351, 27.6314, 200.0),
                    //         duration: 5,
                    //         complete: () => {
                    //             global.viewer.camera.flyTo({
                    //                 // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    //                 // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    //                 destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(114.0351, 27.6314, 200.0),
                    //                 orientation: {
                    //                     // 指向
                    //                     heading: global.DC.Namespace.Cesium.Math.toRadians(108),
                    //                     // 视角
                    //                     pitch: global.DC.Namespace.Cesium.Math.toRadians(-26.46),
                    //                     roll: 0.0
                    //                 }
                    //             })
                    //         }
                    //     })
                    // }, 400)
                    that.titlesetLayerFlag = true
                    global.viewer.camera.setView({
                        // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                        // fromDegrees()方法,将经纬度和高程转换为世界坐标
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                            that.mapCenter[0],
                            that.mapCenter[1],
                            that.mapCenter[2]
                        ),
                        orientation: {
                            // 指向
                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                            // 视角
                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                            roll: 0.0
                        }
                    })
                    // 最小
                    global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100
                    global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1100
                    // 最大
                    global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400
                    global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1400
                    // 设置相机缩小时的速率
                    global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 2000
                    // global.eagleViewer.scene.screenSpaceCameraController._minimumZoomRate = 2000
                    // 设置相机放大时的速率
                    global.viewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000
                    // global.eagleViewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000
                    // 视角平移
                    global.viewer.scene.screenSpaceCameraController.enableRotate = true
                    global.eagleViewer.scene.screenSpaceCameraController.enableRotate = true
                    // 视角缩放
                    global.viewer.scene.screenSpaceCameraController.enableZoom = true
                    global.eagleViewer.scene.screenSpaceCameraController.enableZoom = true
                    // 视角旋转
                    global.viewer.scene.screenSpaceCameraController.enableTilt = false
                    global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
                    that.createdLayers()
                    global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent)
                    global.viewer.on(global.DC.MouseEventType.CLICK, (e) => {
                        if (that.closeMapClick) {
                            return
                        }
                        if (e.overlay != undefined && e.layer.id == 'DefaultAreaLayer') {
                            var rid =
                                e.overlay.attr['楼栋号'] == '8栋'
                                    ? '9栋'
                                    : e.overlay.attr['楼栋号'] == '9栋'
                                        ? '8栋'
                                        : e.overlay.attr['楼栋号']
                            this.$store.commit('CLEAR_ALL', null)
                            getDetail({ mechanismname: '香琴湾' + rid }).then((res) => {
                                global.viewer.scene.globe.depthTestAgainstTerrain = false
                                var result = res.data.data
                                var imgArr = result.tpurl.split(',')
                                this.$store.commit('SET_POPUPBGURL', imgArr[0])
                                this.$store.commit('SET_POPUPQRURL', result.codeurl)
                                this.$store.commit('SET_POINTPOSITION', [
                                    Number(e.wgs84Position.lng),
                                    Number(e.wgs84Position.lat),
                                    Number(e.wgs84Position.alt),
                                    Number(0),
                                    Number(0),
                                    Number(0)
                                ])
                                this.$store.commit('SET_STATENAME', result.mechanismname)
                                this.$store.commit('SET_SITENAME', result.address)
                                this.$store.commit('SET_TELEPHONE', result.telephone)
                                this.$store.commit('SET_INTRODUCETEXT', result.introduce)
                                this.$store.commit('SET_PANORAMAURL', result.panoramaurl)
                                this.$store.commit('SET_POPUPIMGATLAS', imgArr)
                                if (result.videourl && result.videourl != '') {
                                    this.$store.commit('SET_MONITORURL', result.videourl)
                                }
                                if (result.jx != undefined && result.jx != '') {
                                    var tabOne = res.data.data[0].jx.split(',')
                                    this.$store.commit('SET_TEACHLIST', tabOne)
                                } else {
                                    this.$store.commit('SET_TEACHLIST', [])
                                }
                                if (result.sh != undefined && result.sh != '') {
                                    var tabTwo = res.data.data[0].sh.split(',')
                                    this.$store.commit('SET_LIVELIST', tabTwo)
                                } else {
                                    this.$store.commit('SET_LIVELIST', [])
                                }
                                // 定制化窗体
                                // eslint-disable-next-line no-unused-vars
                                var popup = new global.DC.DivForms(global.viewer, {
                                    domId: 'divFormsDomBox',
                                    position: [
                                        global.DC.Transform.transformWGS84ToCartesian(
                                            new global.DC.Position(
                                                Number(e.wgs84Position.lng),
                                                Number(e.wgs84Position.lat),
                                                Number(e.wgs84Position.alt)
                                            )
                                        )
                                    ]
                                })
                                this.$store.commit('SET_PANORAMAPOPUP', false)
                                this.$store.commit('SET_MONITORPOPUP', false)
                                this.$store.commit('SET_DETAILSPOPUP', true)
                            })
                            global.viewer.flyToPosition(
                                new global.DC.Position(
                                    Number(e.wgs84Position.lng),
                                    Number(e.wgs84Position.lat),
                                    300,
                                    Number(0),
                                    Number(-90),
                                    Number(0)
                                ),
                                () => { },
                                0
                            )
                        }
                    })
                    document.querySelector('.dc-zoom-controller').children[1].onclick =
                        function () {
                            if (that.dimensionValue == '真三维') {
                                global.viewer.camera.setView({
                                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
                                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                                        that.mapCenter[0],
                                        that.mapCenter[1],
                                        220.0
                                    ),
                                    orientation: {
                                        // 指向
                                        heading: global.DC.Namespace.Cesium.Math.toRadians(-9),
                                        // 视角
                                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54),
                                        roll: 0.0
                                    }
                                })
                            } else {
                                global.viewer.camera.setView({
                                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
                                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                                        that.mapCenter[0],
                                        that.mapCenter[1],
                                        400.0
                                    ),
                                    orientation: {
                                        // 指向
                                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                        // 视角
                                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                                        roll: 0.0
                                    }
                                })
                            }
                        }
                    document.querySelector('.dc-zoom-controller').children[2].onclick =
                        function () {
                            if (
                                that.dimensionValue != undefined &&
                                that.dimensionValue != '真三维'
                            ) {
                                const height = Math.ceil(
                                    global.viewer.camera.positionCartographic.height
                                )
                                if (height < 150) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                200
                                            ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                            // 视角
                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                                            roll: 0.0
                                        }
                                    })
                                    return
                                }
                                if (height < 250) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                300
                                            ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                            // 视角
                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                                            roll: 0.0
                                        }
                                    })
                                    return
                                }
                                if (height < 350) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                400
                                            ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                            // 视角
                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                                            roll: 0.0
                                        }
                                    })
                                }
                            }
                        }
                    document.querySelector('.dc-zoom-controller').children[0].onclick =
                        function () {
                            if (
                                that.dimensionValue != undefined &&
                                that.dimensionValue != '真三维'
                            ) {
                                const height = Math.ceil(
                                    global.viewer.camera.positionCartographic.height
                                )
                                if (height > 350) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                300
                                            ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                            // 视角
                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                                            roll: 0.0
                                        }
                                    })
                                    return
                                }
                                if (height > 250) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                200
                                            ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                            // 视角
                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                                            roll: 0.0
                                        }
                                    })
                                    return
                                }
                                if (height > 150) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                100
                                            ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                                            // 视角
                                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                                            roll: 0.0
                                        }
                                    })
                                }
                            }
                        }
                    global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
                    global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
                }
            }
        }
    },
    methods: {
        locationSTM () {
            global.viewer.flyToPosition('116.45793269658417,39.92711385557482,617.5967826044838,181.95219395269424,-21.286437065473546')
        },
        mouseMoveEvent (e) {
            var that = this
            if (that.closeMapClick) {
                return
            }
            if (e.overlay != undefined && e.overlay != null && e.layer.id == 'DefaultAreaLayer') {
                if (select.overlay != null) {
                    if (e.overlay != select.overlay) {
                        select.overlay.setStyle({
                            material: select.color,
                            outline: false
                        })
                        select.overlay = null
                        select.color = null
                    }
                }
                if (select.overlay == null) {
                    select.overlay = e.overlay
                    select.color = e.overlay._style.material
                    select.overlay.setStyle({
                        outline: true,
                        outlineColor: global.DC.Namespace.Cesium.Color.fromBytes(
                            3,
                            255,
                            13,
                            255
                        ), // 边框颜色
                        outlineWidth: 10, // 边框大小,
                        height: 0.01,
                        material: global.DC.Namespace.Cesium.Color.fromBytes(
                            108,
                            245,
                            113,
                            158
                        )
                    })
                }
            } else {
                if (select.overlay != null) {
                    select.overlay.setStyle({
                        material: select.color,
                        outline: false
                    })
                    select.overlay = null
                    select.color = null
                }
            }
        },
        mapCameraEvent () {
            const height = Math.ceil(
                global.viewer.camera.positionCartographic.height
            )
            global.viewer.camera.setView({
                orientation: {
                    // 指向
                    heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                    // 视角
                    pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                    roll: 0.0
                }
            })
            if (height < 150) {
                global.viewer.camera.setView({
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                        global.viewer.camera.positionCartographic.longitude,
                        global.viewer.camera.positionCartographic.latitude,
                        100
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                        roll: 0.0
                    }
                })
            }
            if (height > 150 && height <= 250) {
                global.viewer.camera.setView({
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                        global.viewer.camera.positionCartographic.longitude,
                        global.viewer.camera.positionCartographic.latitude,
                        200
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                        roll: 0.0
                    }
                })
            }
            if (height > 250 && height <= 350) {
                global.viewer.camera.setView({
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                        global.viewer.camera.positionCartographic.longitude,
                        global.viewer.camera.positionCartographic.latitude,
                        300
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                        roll: 0.0
                    }
                })
            }
            if (height > 350) {
                global.viewer.camera.setView({
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                        global.viewer.camera.positionCartographic.longitude,
                        global.viewer.camera.positionCartographic.latitude,
                        400
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                        roll: 0.0
                    }
                })
            }
        },
        smallMapCameraEvent () {
            const height = Math.ceil(
                global.eagleViewer.camera.positionCartographic.height
            )
            global.eagleViewer.camera.setView({
                orientation: {
                    // 指向
                    heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                    // 视角
                    pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                    roll: 0.0
                }
            })
            if (height < 1150) {
                global.eagleViewer.camera.setView({
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                        global.eagleViewer.camera.positionCartographic.longitude,
                        global.eagleViewer.camera.positionCartographic.latitude,
                        1100
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                        roll: 0.0
                    }
                })
            }
            if (height > 1150 && height <= 1250) {
                global.eagleViewer.camera.setView({
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                        global.eagleViewer.camera.positionCartographic.longitude,
                        global.eagleViewer.camera.positionCartographic.latitude,
                        1200
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                        roll: 0.0
                    }
                })
            }
            if (height > 1250 && height <= 1350) {
                global.eagleViewer.camera.setView({
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                        global.eagleViewer.camera.positionCartographic.longitude,
                        global.eagleViewer.camera.positionCartographic.latitude,
                        1300
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                        roll: 0.0
                    }
                })
            }
            if (height > 1350) {
                global.eagleViewer.camera.setView({
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                        global.eagleViewer.camera.positionCartographic.longitude,
                        global.eagleViewer.camera.positionCartographic.latitude,
                        1400
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                        roll: 0.0
                    }
                })
            }
        },
        createdLayers () {
            layerGroup = new global.DC.LayerGroup('modelBox')
            global.viewer.addLayerGroup(layerGroup)
            DefaultAreaLayer = new global.DC.VectorLayer('DefaultAreaLayer')
            layerGroup.addLayer(DefaultAreaLayer)
            axios
                .get(
                    'http://arcgis.jxpskj.com:6080/arcgis/rest/services/lxxqwxq/MapServer/0/query?where=1%3D1&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&maxAllowableOffset=&geometryPrecision=&outSR=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&returnTrueCurves=false&resultOffset=&resultRecordCount=&f=pjson'
                )
                .then((resultData) => {
                    resultData.data.features.forEach((item) => {
                        item.geometry.rings[0].forEach((it) => {
                            it = it.join(',')
                        })
                        item.geometry.rings[0] = item.geometry.rings[0].join(';')
                        const polygon = new global.DC.Polygon(item.geometry.rings[0])
                        polygon.attr = item.attributes
                        polygon.setStyle({
                            material: global.DC.Namespace.Cesium.Color.fromBytes(
                                255,
                                255,
                                255,
                                1
                            )
                        })
                        DefaultAreaLayer.addOverlay(polygon)
                    })
                })
        },
        removeLayers () {
            layerGroup.removeLayer(DefaultAreaLayer)
            DefaultAreaLayer = null
            global.viewer.removeLayerGroup(layerGroup)
            layerGroup = null
        },
        tilesetClick (e) {
            var that = this
            if (that.closeMapClick) {
                return
            }
            global.viewer.scene.globe.depthTestAgainstTerrain = false
            if (e.overlay && e.overlay.attr.arcName != null) {
                this.$store.commit('CLEAR_ALL', null)
                getDetail({
                    mechanismname: e.overlay.attr.arcName
                }).then((res) => {
                    if (res && JSON.stringify(res.data.data) != '{}') {
                        var result = res.data.data
                        var imgArr = result.tpurl.split(',')
                        this.$store.commit('SET_POPUPBGURL', imgArr[0])
                        this.$store.commit('SET_POPUPQRURL', result.codeurl)
                        this.$store.commit('SET_POINTPOSITION', [
                            Number(e.wgs84Position.lng),
                            Number(e.wgs84Position.lat),
                            Number(e.wgs84Position.alt),
                            Number(0),
                            Number(0),
                            Number(0)
                        ])
                        this.$store.commit('SET_STATENAME', result.mechanismname)
                        this.$store.commit('SET_SITENAME', result.address)
                        this.$store.commit('SET_TELEPHONE', result.telephone)
                        this.$store.commit('SET_INTRODUCETEXT', result.introduce)
                        this.$store.commit('SET_PANORAMAURL', result.panoramaurl)
                        this.$store.commit('SET_POPUPIMGATLAS', imgArr)
                        if (result.videourl && result.videourl != '') {
                            this.$store.commit('SET_MONITORURL', result.videourl)
                        }
                        if (result.jx != undefined && result.jx != '') {
                            var tabOne = res.data.data[0].jx.split(',')
                            this.$store.commit('SET_TEACHLIST', tabOne)
                        } else {
                            this.$store.commit('SET_TEACHLIST', [])
                        }
                        if (result.sh != undefined && result.sh != '') {
                            var tabTwo = res.data.data[0].sh.split(',')
                            this.$store.commit('SET_LIVELIST', tabTwo)
                        } else {
                            this.$store.commit('SET_LIVELIST', [])
                        }
                        // 定制化窗体
                        // eslint-disable-next-line no-unused-vars
                        var popup = new global.DC.DivForms(global.viewer, {
                            domId: 'divFormsDomBox',
                            position: [
                                global.DC.Transform.transformWGS84ToCartesian(
                                    new global.DC.Position(
                                        Number(e.wgs84Position.lng),
                                        Number(e.wgs84Position.lat),
                                        Number(e.wgs84Position.alt)
                                    )
                                )
                            ]
                        })
                        this.$store.commit('SET_PANORAMAPOPUP', false)
                        this.$store.commit('SET_MONITORPOPUP', false)
                        this.$store.commit('SET_DETAILSPOPUP', true)
                    }
                })
                global.viewer.flyToPosition(
                    new global.DC.Position(
                        Number(e.wgs84Position.lng + 0.00070806),
                        Number(e.wgs84Position.lat - 0.00261205),
                        300,
                        Number(-9),
                        Number(-34.54),
                        Number(0)
                    )
                )
            }
        },
        locationSAT () {
            global.viewer.flyToPosition('121.4941629,31.2091462,1859.56,0,-28.71')
        },
        locationTC () {
            global.viewer.flyToPosition('120.670183527,31.348282115,109658.22,0,-89.90659095062371')
        },
        generatePosition (num) {
            const list = []
            for (let i = 0; i < num; i++) {
                const lng = 120.38105869 + Math.random() * 0.5
                const lat = 31.10115627 + Math.random() * 0.5
                list.push(new global.DC.Position(lng, lat))
            }
            return list
        },
        removeTC () {
            global.viewer.removeLayer(tcLayer)
            tcLayer = null
        },
        createTC () {
            tcLayer = new global.DC.HeatLayer('tcLayer', {
                useGround: true,
                radius: 40
            })
            global.viewer.addLayer(tcLayer)
            const positions = this.generatePosition(3000)
            tcLayer.setPositions(positions)
        },
        // 科技感删除
        removeSAT () {
            global.viewer.removeLayer(layerSat)
            global.viewer.removeLayer(layerSATtwo)
            layerSat = null
            layerSATtwo = null
        },
        // 科技感添加
        createSAT () {
            function generatePosition (num, isAdd) {
                const list = []
                for (let i = 0; i < num; i++) {
                    const lng = 121.49536592256028 + Math.random() * 0.04 * (isAdd ? 1 : -1)
                    const lat = 31.241616722278213 + Math.random() * 0.04 * (isAdd ? 1 : -1)
                    list.push({ lng, lat })
                }
                return list
            }
            layerSat = new global.DC.TilesetLayer('layerSat').addTo(global.viewer)
            const build = new global.DC.Tileset(
                'http://resource.dvgis.cn/data/3dtiles/ljz/tileset.json',
                { skipLevels: true }
            )
            const fs = `
                        varying vec3 v_positionEC;
                        void main(void){
                            vec4 position = czm_inverseModelView * vec4(v_positionEC,1); // 位置
                            float glowRange = 100.0; // 光环的移动范围(高度)
                            gl_FragColor = vec4(0.2,  0.5, 1.0, 1.0); // 颜色
                            gl_FragColor *= vec4(vec3(position.z / 100.0), 1.0); // 渐变
                            // 动态光环
                            float time = fract(czm_frameNumber / 360.0);
                            time = abs(time - 0.5) * 2.0;
                            float diff = step(0.005, abs( clamp(position.z / glowRange, 0.0, 1.0) - time));
                            gl_FragColor.rgb += gl_FragColor.rgb * (1.0 - diff);
                        }
                        `
            build.setCustomShader(fs)
            layerSat.addOverlay(build)
            layerSATtwo = new global.DC.PrimitiveLayer('layer').addTo(global.viewer)
            let positions = generatePosition(50, true)
            positions = positions.concat(generatePosition(50))
            positions.forEach(item => {
                const position = global.DC.Position.fromObject(item)
                const end = position.copy()
                end.alt = 5000 * Math.random()
                const line = new global.DC.FlowLinePrimitive([position, end], 0.5)
                line.setStyle({
                    speed: 6 * Math.random(),
                    color: global.DC.Color.fromCssColorString('rgb(141,172,172)'),
                    percent: 0.1,
                    gradient: 0.01
                })
                layerSATtwo.addOverlay(line)
            })
        },
        dimensionChange () {
            var that = this
            that.$store.commit('SET_TWOORTHREE', that.dimensionValue)
            if (that.dimensionValue == '真三维') {
                that.btnGroupShow = true
                that.createSAT()
                that.createTC()
                global.viewer.off(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent)
                global.viewer.off(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
                global.eagleViewer.off(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
                that.removeLayers()
                global.viewer.imageryLayers.remove(baseMapLayer)
                baseMapLayer = null
                silhouetteBlue.selected = []
                tilesetLayer = new global.DC.TilesetLayer('tilesetLayer')
                global.viewer.addLayer(tilesetLayer)
                tileset = new global.DC.Tileset('/mx/tileset.json', {
                    luminanceAtZenith: 0.4,
                    // cullWithChildrenBounds: false,
                    // cullRequestsWhileMoving: false,
                    // skipLevelOfDetail: false,
                    shadows: global.DC.Namespace.Cesium.ShadowMode.DISABLED
                })
                tilesetLayer.addOverlay(tileset)
                tileset.on(global.DC.MouseEventType.CLICK, that.tilesetClick)
                tilesetLayer.show = true
                streenMlayer = new global.DC.S3MLayer('streenMlayer', 'http://resource.dvgis.cn/data/3dtiles/CBD/cbd.scp')
                global.viewer.addLayer(streenMlayer)
                // 最小
                global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 1.0
                global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1.0
                // 最大
                global.viewer.scene.screenSpaceCameraController.maximumZoomDistance =
                    Number.POSITIVE_INFINITY
                global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance =
                    Number.POSITIVE_INFINITY
                // 视角旋转
                global.viewer.scene.screenSpaceCameraController.enableTilt = true
                global.eagleViewer.scene.screenSpaceCameraController.enableTilt = true
                // 115.877863,28.741661
                global.viewer.camera.setView({
                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                        that.mapCenter[0],
                        that.mapCenter[1],
                        220.0
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(-9),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54),
                        roll: 0.0
                    }
                })
                global.eagleViewer.camera.setView({
                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                        that.mapCenter[0],
                        that.mapCenter[1],
                        1220.0
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(-9),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54),
                        roll: 0.0
                    }
                })
            } else {
                that.btnGroupShow = false
                that.removeSAT()
                that.removeTC()
                global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent)
                global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
                global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
                tileset.off(global.DC.MouseEventType.CLICK, that.tilesetClick)
                tilesetLayer.removeOverlay(tileset)
                tilesetLayer.show = false
                global.viewer.removeLayer(tilesetLayer)
                tileset = null
                tilesetLayer = null
                global.viewer.removeLayer(streenMlayer)
                streenMlayer = null
                that.createdLayers()
                baseMapLayer = global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                    url: '/wp/{z}/{x}/{y}.png',
                    fileExtension: 'png'
                }))
                global.viewer.camera.setView({
                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                        that.mapCenter[0],
                        that.mapCenter[1],
                        400.0
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                        roll: 0.0
                    }
                })
                global.eagleViewer.camera.setView({
                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                        that.mapCenter[0],
                        that.mapCenter[1],
                        1400.0
                    ),
                    orientation: {
                        // 指向
                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                        // 视角
                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                        roll: 0.0
                    }
                })
                // 最小
                global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100
                global.eagleViewer.scene.screenSpaceCameraController.minimumZoomDistance = 1100
                // 最大
                global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 400
                global.eagleViewer.scene.screenSpaceCameraController.maximumZoomDistance = 1400
                // 视角旋转
                global.viewer.scene.screenSpaceCameraController.enableTilt = false
                global.eagleViewer.scene.screenSpaceCameraController.enableTilt = false
            }
        }
    }
}
</script>
<style lang="scss" scoped>
.dimension-cut {
    position: fixed;
    top: 100px;
    right: 10px;
    width: auto;
    // height: 40px;
    z-index: 1;
}
.three-stm {
    position: fixed;
    top: 66px;
    right: 10px;
    z-index: 99;
}
.sat-stm {
    position: fixed;
    top: 66px;
    right: 75px;
    z-index: 99;
}
.sat-tc {
    position: fixed;
    top: 66px;
    right: 141px;
    z-index: 99;
}
</style>
src/components/map/components/dimension.vue
@@ -56,7 +56,8 @@
let layerSATtwo = null
let tcLayer = null
let idlerFlag = true
let viewerHeight = 950
let smallViewerHeight = 1950
// const wallLayer = null
@@ -105,6 +106,7 @@
            // mapCenter: [115.871863, 28.743861, 950.0]
        }
    },
    props: ['wheelFlag', 'startWheel', 'startSmallWheel'],
    computed: {
        ...mapGetters([
            'viewerExist',
@@ -119,34 +121,6 @@
        select = {
            overlay: null,
            color: null
        }
        windowAddMouseWheel()
        function windowAddMouseWheel () {
            var scrollFunc = function (e) {
                e = e || window.event
                if (e.wheelDelta) { // 判断浏览器IE,谷歌滑轮事件
                    if (e.wheelDelta > 0) { // 当滑轮向上滚动时
                        idlerFlag = false
                    }
                    if (e.wheelDelta < 0) { // 当滑轮向下滚动时
                        idlerFlag = true
                    }
                } else if (e.detail) { // Firefox滑轮事件
                    if (e.detail > 0) { // 当滑轮向上滚动时
                        idlerFlag = false
                    }
                    if (e.detail < 0) { // 当滑轮向下滚动时
                        idlerFlag = true
                    }
                }
            }
            // 给页面绑定滑轮滚动事件
            if (document.addEventListener) { // 火狐使用DOMMouseScroll绑定
                document.addEventListener('DOMMouseScroll', scrollFunc, false)
            }
            // 其他浏览器直接绑定滚动事件
            window.onmousewheel = document.onmousewheel = scrollFunc
        }
    },
    watch: {
@@ -488,7 +462,7 @@
                                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                                        that.mapCenter[0],
                                        that.mapCenter[1],
                                        950.0
                                        that.mapCenter[2]
                                    ),
                                    orientation: {
                                        // 指向
@@ -507,18 +481,13 @@
                                that.dimensionValue != undefined &&
                                that.dimensionValue != '真三维'
                            ) {
                                const height = Math.ceil(
                                    global.viewer.camera.positionCartographic.height
                                )
                                if (height < 575) {
                                if (viewerHeight == 500) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                650
                                            ),
                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            global.viewer.camera.positionCartographic.longitude,
                                            global.viewer.camera.positionCartographic.latitude,
                                            650
                                        ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
@@ -527,18 +496,18 @@
                                            roll: 0.0
                                        }
                                    })
                                    viewerHeight = 650
                                    this.$emit('change-wheel', false, 'startWheel')
                                    return
                                }
                                if (height < 725) {
                                if (viewerHeight == 650) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                800
                                            ),
                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            global.viewer.camera.positionCartographic.longitude,
                                            global.viewer.camera.positionCartographic.latitude,
                                            800
                                        ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
@@ -547,18 +516,18 @@
                                            roll: 0.0
                                        }
                                    })
                                    viewerHeight = 800
                                    this.$emit('change-wheel', false, 'startWheel')
                                    return
                                }
                                if (height < 875) {
                                if (viewerHeight == 800) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                950
                                            ),
                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            global.viewer.camera.positionCartographic.longitude,
                                            global.viewer.camera.positionCartographic.latitude,
                                            950
                                        ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
@@ -567,6 +536,8 @@
                                            roll: 0.0
                                        }
                                    })
                                    viewerHeight = 950
                                    this.$emit('change-wheel', false, 'startWheel')
                                }
                            }
                        }
@@ -577,18 +548,13 @@
                                that.dimensionValue != undefined &&
                                that.dimensionValue != '真三维'
                            ) {
                                const height = Math.ceil(
                                    global.viewer.camera.positionCartographic.height
                                )
                                if (height > 875) {
                                if (viewerHeight == 950) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                800
                                            ),
                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            global.viewer.camera.positionCartographic.longitude,
                                            global.viewer.camera.positionCartographic.latitude,
                                            800
                                        ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
@@ -597,18 +563,18 @@
                                            roll: 0.0
                                        }
                                    })
                                    viewerHeight = 800
                                    this.$emit('change-wheel', false, 'startWheel')
                                    return
                                }
                                if (height > 725) {
                                if (viewerHeight == 800) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                650
                                            ),
                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            global.viewer.camera.positionCartographic.longitude,
                                            global.viewer.camera.positionCartographic.latitude,
                                            650
                                        ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
@@ -617,18 +583,18 @@
                                            roll: 0.0
                                        }
                                    })
                                    viewerHeight = 650
                                    this.$emit('change-wheel', false, 'startWheel')
                                    return
                                }
                                if (height > 575) {
                                if (viewerHeight == 650) {
                                    global.viewer.camera.setView({
                                        destination:
                                            global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                                global.viewer.camera.positionCartographic.longitude,
                                                global.viewer.camera.positionCartographic.latitude,
                                                500
                                            ),
                                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                                            global.viewer.camera.positionCartographic.longitude,
                                            global.viewer.camera.positionCartographic.latitude,
                                            500
                                        ),
                                        orientation: {
                                            // 指向
                                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
@@ -637,12 +603,14 @@
                                            roll: 0.0
                                        }
                                    })
                                    viewerHeight = 500
                                    this.$emit('change-wheel', false, 'startWheel')
                                }
                            }
                        }
                    global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
                    // global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
                    global.eagleViewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.smallMapCameraEvent)
                }
            }
        }
@@ -712,10 +680,6 @@
        },
        mapCameraEvent () {
            const height = Math.ceil(
                global.viewer.camera.positionCartographic.height
            )
            global.viewer.camera.setView({
                orientation: {
                    // 指向
@@ -726,26 +690,10 @@
                }
            })
            if (idlerFlag) { // 下
                if (height > 810) {
                    global.viewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
                            global.viewer.camera.positionCartographic.latitude,
                            950
                        ),
                        orientation: {
                            // 指向
                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                            // 视角
                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                            roll: 0.0
                        }
                    })
                    return
                }
            if (this.startWheel == false) return
                if (height > 660) {
            if (this.wheelFlag) { // 下
                if (viewerHeight == 950) {
                    global.viewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
@@ -760,10 +708,12 @@
                            roll: 0.0
                        }
                    })
                    viewerHeight = 800
                    this.$emit('change-wheel', false, 'startWheel')
                    return
                }
                if (height > 510) {
                if (viewerHeight == 800) {
                    global.viewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
@@ -778,9 +728,12 @@
                            roll: 0.0
                        }
                    })
                    viewerHeight = 650
                    this.$emit('change-wheel', false, 'startWheel')
                    return
                }
            } else { // 上
                if (height < 640) {
                if (viewerHeight == 650) {
                    global.viewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
@@ -795,10 +748,11 @@
                            roll: 0.0
                        }
                    })
                    return
                    viewerHeight = 500
                    this.$emit('change-wheel', false, 'startWheel')
                }
                if (height < 790) {
            } else { // 上
                if (viewerHeight == 500) {
                    global.viewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
@@ -813,10 +767,12 @@
                            roll: 0.0
                        }
                    })
                    viewerHeight = 650
                    this.$emit('change-wheel', false, 'startWheel')
                    return
                }
                if (height < 940) {
                if (viewerHeight == 650) {
                    global.viewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
@@ -831,15 +787,33 @@
                            roll: 0.0
                        }
                    })
                    viewerHeight = 800
                    this.$emit('change-wheel', false, 'startWheel')
                    return
                }
                if (viewerHeight == 800) {
                    global.viewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
                            global.viewer.camera.positionCartographic.latitude,
                            950
                        ),
                        orientation: {
                            // 指向
                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                            // 视角
                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                            roll: 0.0
                        }
                    })
                    viewerHeight = 950
                    this.$emit('change-wheel', false, 'startWheel')
                }
            }
        },
        smallMapCameraEvent () {
            const height = Math.ceil(
                global.eagleViewer.camera.positionCartographic.height
            )
            global.eagleViewer.camera.setView({
                orientation: {
                    // 指向
@@ -850,30 +824,14 @@
                }
            })
            if (idlerFlag) { // 下
                if (height > 1810) {
                    global.viewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
                            global.viewer.camera.positionCartographic.latitude,
                            1950
                        ),
                        orientation: {
                            // 指向
                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                            // 视角
                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                            roll: 0.0
                        }
                    })
                    return
                }
            if (this.startSmallWheel == false) return
                if (height > 1660) {
                    global.viewer.camera.setView({
            if (this.wheelFlag) { // 下
                if (smallViewerHeight == 1950) {
                    global.eagleViewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
                            global.viewer.camera.positionCartographic.latitude,
                            global.eagleViewer.camera.positionCartographic.longitude,
                            global.eagleViewer.camera.positionCartographic.latitude,
                            1800
                        ),
                        orientation: {
@@ -884,14 +842,16 @@
                            roll: 0.0
                        }
                    })
                    smallViewerHeight = 1800
                    this.$emit('change-wheel', false, 'startSmallWheel')
                    return
                }
                if (height > 1510) {
                    global.viewer.camera.setView({
                if (smallViewerHeight == 1800) {
                    global.eagleViewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
                            global.viewer.camera.positionCartographic.latitude,
                            global.eagleViewer.camera.positionCartographic.longitude,
                            global.eagleViewer.camera.positionCartographic.latitude,
                            1650
                        ),
                        orientation: {
@@ -902,13 +862,16 @@
                            roll: 0.0
                        }
                    })
                    smallViewerHeight = 1650
                    this.$emit('change-wheel', false, 'startSmallWheel')
                    return
                }
            } else { // 上
                if (height < 1640) {
                    global.viewer.camera.setView({
                if (smallViewerHeight == 1650) {
                    global.eagleViewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
                            global.viewer.camera.positionCartographic.latitude,
                            global.eagleViewer.camera.positionCartographic.longitude,
                            global.eagleViewer.camera.positionCartographic.latitude,
                            1500
                        ),
                        orientation: {
@@ -919,14 +882,15 @@
                            roll: 0.0
                        }
                    })
                    return
                    smallViewerHeight = 1500
                    this.$emit('change-wheel', false, 'startSmallWheel')
                }
                if (height < 1790) {
                    global.viewer.camera.setView({
            } else { // 上
                if (smallViewerHeight == 1500) {
                    global.eagleViewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
                            global.viewer.camera.positionCartographic.latitude,
                            global.eagleViewer.camera.positionCartographic.longitude,
                            global.eagleViewer.camera.positionCartographic.latitude,
                            1650
                        ),
                        orientation: {
@@ -937,14 +901,16 @@
                            roll: 0.0
                        }
                    })
                    smallViewerHeight = 1650
                    this.$emit('change-wheel', false, 'startSmallWheel')
                    return
                }
                if (height < 1940) {
                    global.viewer.camera.setView({
                if (smallViewerHeight == 1650) {
                    global.eagleViewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.viewer.camera.positionCartographic.longitude,
                            global.viewer.camera.positionCartographic.latitude,
                            global.eagleViewer.camera.positionCartographic.longitude,
                            global.eagleViewer.camera.positionCartographic.latitude,
                            1800
                        ),
                        orientation: {
@@ -955,6 +921,28 @@
                            roll: 0.0
                        }
                    })
                    smallViewerHeight = 1800
                    this.$emit('change-wheel', false, 'startSmallWheel')
                    return
                }
                if (smallViewerHeight == 1800) {
                    global.eagleViewer.camera.setView({
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
                            global.eagleViewer.camera.positionCartographic.longitude,
                            global.eagleViewer.camera.positionCartographic.latitude,
                            1950
                        ),
                        orientation: {
                            // 指向
                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                            // 视角
                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                            roll: 0.0
                        }
                    })
                    smallViewerHeight = 1950
                    this.$emit('change-wheel', false, 'startSmallWheel')
                }
            }
        },
@@ -1289,7 +1277,7 @@
                    destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                        that.mapCenter[0],
                        that.mapCenter[1],
                        950.0
                        that.mapCenter[2]
                    ),
                    orientation: {
                        // 指向
src/components/map/index.vue
@@ -29,7 +29,12 @@
            "
        >智慧校区</div>
        <dimension />
        <dimension
            :wheelFlag="wheelFlag"
            :startWheel="startWheel"
            :startSmallWheel="startSmallWheel"
            @change-wheel="changeWheel"
        />
        <calender v-if="calenderShow" />
@@ -70,7 +75,10 @@
    },
    data () {
        return {
            samllMapFlag: false
            samllMapFlag: false,
            wheelFlag: true,
            startWheel: false,
            startSmallWheel: false
        }
    },
    watch: {
@@ -227,14 +235,15 @@
                        preserveDrawingBuffer: true
                    }
                }
            }).setOptions({
                // showAtmosphere: false, 大气层
                showMoon: true, // 月亮
                showSun: true, // 太阳
                skyBox: {
                    show: true
                }
            })
            // .setOptions({
            //     // showAtmosphere: false, 大气层
            //     showMoon: true, // 月亮
            //     showSun: true, // 太阳
            //     skyBox: {
            //         show: true
            //     }
            // })
            // const chartLayer = new global.DC.ChartLayer('busLayer').addTo(global.viewer)
@@ -242,9 +251,9 @@
            // global.viewer.scene.backgroundColor = global.DC.Namespace.Cesium.Color.fromBytes(245, 244, 238)
            global.viewer.use(new global.DC.Weather())
            global.viewer.weather.cloud.enable = true
            global.viewer.weather.cloud.rotateAmount = 0.02
            // global.viewer.use(new global.DC.Weather())
            // global.viewer.weather.cloud.enable = true
            // global.viewer.weather.cloud.rotateAmount = 0.02
            that.$store.commit('SET_VIEWEREXIST', true)
@@ -294,6 +303,30 @@
            var isLeftTrigger = false
            var isRightTrigger = false
            handlerL.setInputAction(function (movement) {
                that.startWheel = true
                if (movement > 0) {
                    // 向下
                    that.wheelFlag = true
                } else {
                    // 向上
                    that.wheelFlag = false
                }
            }, global.DC.Namespace.Cesium.ScreenSpaceEventType.WHEEL)
            handlerR.setInputAction(function (movement) {
                that.startSmallWheel = true
                if (that.samllMapFlag) {
                    if (movement > 0) {
                        // 向下
                        that.wheelFlag = true
                    } else {
                        // 向上
                        that.wheelFlag = false
                    }
                }
            }, global.DC.Namespace.Cesium.ScreenSpaceEventType.WHEEL)
            handlerL.setInputAction(function (movement) {
                isLeftTrigger = true
@@ -363,7 +396,7 @@
                // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                // fromDegrees()方法,将经纬度和高程转换为世界坐标
                destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                    115.871863, 28.743861, 1400.0
                    116.35381525, 27.95839468, 1950.0
                ),
                orientation: {
                    // 指向
@@ -550,6 +583,9 @@
        global.DC.ready(initViewer)
    },
    methods: {
        changeWheel (val, type) {
            this[type] = val
        },
        mapClick (e) {
            this.$refs.campusNavRoute.shortcutShow(e)
            this.$refs.campusBuildingSearch.shortcutShow(e)
src/pcviews/tool/sign.vue
@@ -1,210 +1,195 @@
<template>
  <public-box class="tool-sign">
    <template slot="public-box-header">
      <div class="title">
        <img class="icon deblurring" src="/img/icon/tool-sign.png" alt />
        <span>地图标记</span>
      </div>
      <img
        class="btn-box deblurring"
        @click.stop="addSign"
        src="/img/navicon/add.png"
        alt
      />
      <img
        class="close deblurring"
        src="/img/navicon/close.png"
        alt
        @click="closeModel"
      />
    </template>
    <template slot="public-box-content">
      <div class="list-box" v-loading="loading">
        <ul v-show="signShow">
          <li
            v-for="(item, index) in signList"
            :key="index"
            @click="dingw(item)"
          >
            <img src="/img/icon/sign-list.png" alt />
            {{ item.name }}
            <el-button
              type="danger"
              size="mini"
              icon="el-icon-delete"
              circle
              @click.stop="deleteIcon(item.id)"
            ></el-button>
          </li>
        </ul>
        <div v-show="!signShow" class="no-data">
          <img src="/img/icon/no-data.png" alt />
          <div>暂无数据</div>
        </div>
      </div>
    </template>
  </public-box>
    <public-box class="tool-sign">
        <template slot="public-box-header">
            <div class="title">
                <img class="icon deblurring" src="/img/icon/tool-sign.png" alt />
                <span>地图标记</span>
            </div>
            <img class="btn-box deblurring" @click.stop="addSign" src="/img/navicon/add.png" alt />
            <img class="close deblurring" src="/img/navicon/close.png" alt @click="closeModel" />
        </template>
        <template slot="public-box-content">
            <div class="list-box" v-loading="loading">
                <ul v-show="signShow">
                    <li v-for="(item, index) in signList" :key="index" @click="dingw(item)">
                        <img src="/img/icon/sign-list.png" alt />
                        {{ item.name }}
                        <el-button
                            type="danger"
                            size="mini"
                            icon="el-icon-delete"
                            circle
                            @click.stop="deleteIcon(item.id)"
                        ></el-button>
                    </li>
                </ul>
                <div v-show="!signShow" class="no-data">
                    <img src="/img/icon/no-data.png" alt />
                    <div>暂无数据</div>
                </div>
            </div>
        </template>
    </public-box>
</template>
<script>
import { mapGetters } from "vuex";
import { getlabel, deletelabel } from "@/api/pc/label";
import { mapGetters } from 'vuex'
import { getlabel, deletelabel } from '@/api/pc/label'
export default {
  data() {
    return {
      loading: true,
      signList: [],
      signShow: true,
      destroyedFlag: true,
    };
  },
  computed: {
    ...mapGetters(["addSignList"]),
  },
  mounted() {
    this.$store.commit("initLabelLayer", global.viewer);
    this.getData();
  },
  watch: {
    addSignList() {
      this.getData();
    },
  },
  methods: {
    dingw(item) {
      const that = this;
      // console.log(item);
      // this.$store.dispatch("mapFlyTo", {
      //   lntLat: [item.jd, item.wd, 120], //114.04020791, 27.62934732
      //   heading: 0,
      //   pitch: -90,
      //   roll: 0,
      //   noOpen: true,
      //   mviewer: that.viewer,
      // });
      global.viewer.camera.setView({
        // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
        // fromDegrees()方法,将经纬度和高程转换为世界坐标
        destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
          item.jd,
          item.wd,
          400.0
        ),
        orientation: {
          // 指向
          heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
          // 视角
          pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
          roll: 0.0,
        },
      });
    },
    deleteIcon(id) {
      const that = this;
      deletelabel(id).then((res) => {
        console.log(res);
        if (res.data.code == 200) {
          that.$message({
            message: "删除标签成功",
            type: "success",
          });
        } else {
          that.$message({
            message: "删除标签失败",
            type: "warning",
          });
    data () {
        return {
            loading: true,
            signList: [],
            signShow: true,
            destroyedFlag: true
        }
        that.getData();
      });
    },
    getData() {
      const that = this;
      that.loading = true;
      let oks = setTimeout(() => {
        that.loading = false;
        that.signShow = false;
      }, 5000);
      getlabel().then((res) => {
        clearTimeout(oks);
        console.log(res);
        const data = res.data.data.records;
        that.signList = data;
        that.signList.length > 0
          ? (that.signShow = true)
          : (that.signShow = false);
        that.loading = false;
        // that.$store.commit("clearLabelLayerIcon");
        that.$store.dispatch("addLabelLayerIcon", {
          list: data,
          clear: true,
        });
      });
    computed: {
        ...mapGetters(['addSignList'])
    },
    moveMessage(e, b) {
      if (b == "") {
        global.viewer.tooltip.enable = false;
      } else {
        global.viewer.tooltip.enable = true;
        global.viewer.tooltip.showAt(e.windowPosition, b);
      }
    mounted () {
        this.$store.commit('initLabelLayer', global.viewer)
        this.getData()
    },
    addSign() {
      var that = this;
      this.$store.commit("set_closeMapClick", true);
      // console.log("开始", "see");
      global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) =>
        that.moveMessage(e, "点击确认标注位置")
      );
      global.viewer.once(global.DC.MouseEventType.CLICK, (e) => {
        if (that.destroyedFlag == false) return;
        global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) =>
          that.moveMessage(e, "")
        );
        // eslint-disable-next-line no-unused-vars
        new global.DC.DivForms(global.viewer, {
          domId: "AddTagBox",
          position: [
            global.DC.Transform.transformWGS84ToCartesian(
              new global.DC.Position(
                Number(e.wgs84SurfacePosition.lng),
                Number(e.wgs84SurfacePosition.lat),
                Number(e.wgs84SurfacePosition.alt)
              )
            ),
          ],
        });
        that.$store.commit("SET_ADDTAGPOSITION", e.wgs84SurfacePosition);
        that.$store.commit("SET_ADDTAGPOPUP", true);
      });
    watch: {
        addSignList () {
            this.getData()
        }
    },
    methods: {
        dingw (item) {
            // console.log(item);
            // this.$store.dispatch("mapFlyTo", {
            //   lntLat: [item.jd, item.wd, 120], //114.04020791, 27.62934732
            //   heading: 0,
            //   pitch: -90,
            //   roll: 0,
            //   noOpen: true,
            //   mviewer: that.viewer,
            // });
            global.viewer.camera.setView({
                // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                // fromDegrees()方法,将经纬度和高程转换为世界坐标
                destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                    item.jd,
                    item.wd,
                    950.0
                ),
                orientation: {
                    // 指向
                    heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
                    // 视角
                    pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
                    roll: 0.0
                }
            })
        },
        deleteIcon (id) {
            const that = this
            deletelabel(id).then((res) => {
                console.log(res)
                if (res.data.code == 200) {
                    that.$message({
                        message: '删除标签成功',
                        type: 'success'
                    })
                } else {
                    that.$message({
                        message: '删除标签失败',
                        type: 'warning'
                    })
                }
                that.getData()
            })
        },
        getData () {
            const that = this
            that.loading = true
            const oks = setTimeout(() => {
                that.loading = false
                that.signShow = false
            }, 5000)
            getlabel().then((res) => {
                clearTimeout(oks)
                console.log(res)
                const data = res.data.data.records
                that.signList = data
                that.signList.length > 0
                    ? (that.signShow = true)
                    : (that.signShow = false)
                that.loading = false
                // that.$store.commit("clearLabelLayerIcon");
                that.$store.dispatch('addLabelLayerIcon', {
                    list: data,
                    clear: true
                })
            })
        },
        moveMessage (e, b) {
            if (b == '') {
                global.viewer.tooltip.enable = false
            } else {
                global.viewer.tooltip.enable = true
                global.viewer.tooltip.showAt(e.windowPosition, b)
            }
        },
    closeModel() {
      this.$store.dispatch("delVisitedViews", this.$route);
      this.$router.push("/pcLayout/default");
      this.$store.commit("clearLabelLayerIcon");
        addSign () {
            var that = this
            this.$store.commit('set_closeMapClick', true)
            // console.log("开始", "see");
            global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) =>
                that.moveMessage(e, '点击确认标注位置')
            )
            global.viewer.once(global.DC.MouseEventType.CLICK, (e) => {
                if (that.destroyedFlag == false) return
                global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) =>
                    that.moveMessage(e, '')
                )
                // eslint-disable-next-line no-unused-vars
                var div = new global.DC.DivForms(global.viewer, {
                    domId: 'AddTagBox',
                    position: [
                        global.DC.Transform.transformWGS84ToCartesian(
                            new global.DC.Position(
                                Number(e.wgs84SurfacePosition.lng),
                                Number(e.wgs84SurfacePosition.lat),
                                Number(e.wgs84SurfacePosition.alt)
                            )
                        )
                    ]
                })
                that.$store.commit('SET_ADDTAGPOSITION', e.wgs84SurfacePosition)
                that.$store.commit('SET_ADDTAGPOPUP', true)
            })
        },
        closeModel () {
            this.$store.dispatch('delVisitedViews', this.$route)
            this.$router.push('/pcLayout/default')
            this.$store.commit('clearLabelLayerIcon')
        }
    },
  },
  destroyed() {
    var that = this;
    that.destroyedFlag = false;
    if (global.DC) {
      global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) =>
        that.moveMessage(e, "")
      );
    destroyed () {
        var that = this
        that.destroyedFlag = false
        if (global.DC) {
            global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) =>
                that.moveMessage(e, '')
            )
        }
        this.$store.commit('clearLabelLayerIcon')
    }
    this.$store.commit("clearLabelLayerIcon");
  },
};
}
</script>
<style lang="scss" scoped>
.move {
  cursor: move;
    cursor: move;
}
</style>
src/store/modules/popupParams.js
@@ -1,7 +1,7 @@
import leftNavsData from './pc/leftNavsData'
window.labelLayer = null;
window.divIcon = null;
window.divIcononces = null;
window.labelLayer = null
window.divIcon = null
window.divIcononces = null
const popupParams = {
    state: {
@@ -37,70 +37,70 @@
    },
    mutations: {
        ...leftNavsData.mutations,
        SET_POPUPBGURL(state, popupBgUrl) {
        SET_POPUPBGURL (state, popupBgUrl) {
            // console.log(popupBgUrl, "see33333")
            if (!popupBgUrl) {
                return
            }
            state.popupBgUrl = popupBgUrl
        },
        SET_POPUPQRURL(state, pupupQRUrl) {
        SET_POPUPQRURL (state, pupupQRUrl) {
            state.pupupQRUrl = pupupQRUrl
        },
        SET_TERMINUS(state, terminus) {
        SET_TERMINUS (state, terminus) {
            state.terminus = terminus
        },
        SET_STARTINGPOINT(state, startingPoint) {
        SET_STARTINGPOINT (state, startingPoint) {
            state.startingPoint = startingPoint
        },
        SET_POINTPOSITION(state, pointPosition) {
        SET_POINTPOSITION (state, pointPosition) {
            state.pointPosition = pointPosition
        },
        SET_STATENAME(state, stateName) {
        SET_STATENAME (state, stateName) {
            state.stateName = stateName
        },
        SET_SITENAME(state, siteName) {
        SET_SITENAME (state, siteName) {
            state.siteName = siteName
        },
        SET_TELEPHONE(state, telephone) {
        SET_TELEPHONE (state, telephone) {
            state.telephone = telephone
        },
        SET_INTRODUCETEXT(state, introduceText) {
        SET_INTRODUCETEXT (state, introduceText) {
            state.introduceText = introduceText
        },
        SET_PANORAMAURL(state, panoramaUrl) {
        SET_PANORAMAURL (state, panoramaUrl) {
            state.panoramaUrl = panoramaUrl
        },
        SET_PANORAMAPOPUP(state, panoramaPopup) {
        SET_PANORAMAPOPUP (state, panoramaPopup) {
            state.panoramaPopup = panoramaPopup
        },
        SET_MONITORURL(state, monitorUrl) {
        SET_MONITORURL (state, monitorUrl) {
            state.monitorUrl = monitorUrl
        },
        SET_MONITORPOPUP(state, monitorPopup) {
        SET_MONITORPOPUP (state, monitorPopup) {
            state.monitorPopup = monitorPopup
        },
        SET_DETAILSPOPUP(state, detailsPopup) {
        SET_DETAILSPOPUP (state, detailsPopup) {
            state.detailsPopup = detailsPopup
        },
        SET_POPUPIMGATLAS(state, popupImgAtlas) {
        SET_POPUPIMGATLAS (state, popupImgAtlas) {
            state.popupImgAtlas = popupImgAtlas
        },
        SET_TEACHLIST(state, teachList) {
        SET_TEACHLIST (state, teachList) {
            state.teachList = teachList
        },
        SET_LIVELIST(state, liveList) {
        SET_LIVELIST (state, liveList) {
            state.liveList = liveList
        },
        SET_ADDTAGPOPUP(state, addTagPopup) {
        SET_ADDTAGPOPUP (state, addTagPopup) {
            state.addTagPopup = addTagPopup
        },
        SET_ADDTAGPOSITION(state, addTagPosition) {
        SET_ADDTAGPOSITION (state, addTagPosition) {
            state.addTagPosition = addTagPosition
        },
        initLabelLayer(state, val) {
        initLabelLayer (state, val) {
            if (!window.labelLayer) {
                window.labelLayer = new global.DC.HtmlLayer('labelLayer')
                val.addLayer(window.labelLayer)
@@ -108,12 +108,12 @@
            state.myviewer = val
        },
        clearLabelLayerIcon(state, val) {
        clearLabelLayerIcon (state, val) {
            if (window.labelLayer) {
                window.labelLayer.clear()
            }
        },
        openLabelLayer(state, val) {
        openLabelLayer (state, val) {
            // console.log(val, "see")
            if (val.show) {
                state.nowlabelLayerData = val.data
@@ -123,7 +123,7 @@
                state.labelLayerDataShow = false
            }
        },
        CLEAR_ALL(state, param) {
        CLEAR_ALL (state, param) {
            state.siteName = param
            state.introduceText = param
            state.telephone = param
@@ -133,13 +133,13 @@
            state.teachList = []
            state.liveList = []
        },
        set_closeMapClick(state, val) {
        set_closeMapClick (state, val) {
            state.closeMapClick = val
        }
    },
    actions: {
        ...leftNavsData.actions,
        openPopups({
        openPopups ({
            state,
            commit,
            dispatch
@@ -172,7 +172,7 @@
                viewer: this.viewer
            })
        },
        setOurDataInPoput({
        setOurDataInPoput ({
            state,
            commit,
            dispatch
@@ -202,7 +202,7 @@
            ])
            commit('SET_DETAILSPOPUP', true)
        },
        pcMoveView({
        pcMoveView ({
            state,
            commit,
            dispatch
@@ -213,7 +213,7 @@
                destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                    +val.jd,
                    +val.wd,
                    400.0
                    950.0
                ),
                orientation: {
                    // 指向
@@ -224,18 +224,18 @@
                }
            })
        },
        pcFlyView({
        pcFlyView ({
            state,
            commit,
            dispatch
        }, val) {
            val.viewer.flyToPosition(
                new global.DC.Position(Number(val.jd), Number(val.wd), Number(300), Number(0), Number(-90), Number(0)),
                function () {},
                function () { },
                2
            )
        },
        addLabelLayerIcon({
        addLabelLayerIcon ({
            state,
            commit,
            dispatch
@@ -275,7 +275,7 @@
                    // const position = e.position
                    const lntLat = [e.overlay._position._lng, e.overlay._position._lat]
                    // console.log(position, lntLat, list[i], state.myviewer, "see")
                    new global.DC.DivForms(global.viewer, {
                    var box = new global.DC.DivForms(global.viewer, {
                        domId: 'labelLayerid',
                        position: [
                            global.DC.Transform.transformWGS84ToCartesian(
@@ -293,7 +293,7 @@
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                            lntLat[0],
                            lntLat[1],
                            400.0
                            950.0
                        ),
                        orientation: {
                            // 指向
@@ -311,7 +311,7 @@
                window.labelLayer.addOverlay(window.divIcononces)
            }
        },
        addLabelLayerIconMobelUse({
        addLabelLayerIconMobelUse ({
            state,
            commit,
            dispatch
@@ -330,7 +330,7 @@
                state.addSignList = !state.addSignList
                return
            }
            for (let i in list) {
            for (const i in list) {
                window.divIcon = new global.DC.DivIcon(
                    new global.DC.Position(
                        Number(list[i].jd),
@@ -356,7 +356,7 @@
                    // const position = e.position
                    const lntLat = [e.overlay._position._lng, e.overlay._position._lat]
                    // console.log(position, lntLat, list[i], state.myviewer, "see")
                    new global.DC.DivForms(global.viewer, {
                    var box = new global.DC.DivForms(global.viewer, {
                        domId: 'labelLayerid',
                        position: [
                            global.DC.Transform.transformWGS84ToCartesian(
@@ -374,7 +374,7 @@
                        destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
                            lntLat[0],
                            lntLat[1],
                            400.0
                            950.0
                        ),
                        orientation: {
                            // 指向
@@ -395,4 +395,4 @@
    }
}
export default popupParams
export default popupParams