From aaf1f998766b27ac10094d29de552178418c0b14 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Mon, 14 Mar 2022 15:05:51 +0800
Subject: [PATCH] 处理内存泄漏的问题

---
 src/components/map/components/dimension.vue |  752 +++++++++++++++++++----------------------
 src/components/campusNav/index.vue          |  103 +++--
 src/pcviews/specialmap/welcome.vue          |   30 
 src/main.js                                 |   24 
 src/components/leftNav/index.vue            |  117 +++--
 src/components/map/index.vue                |   19 
 src/components/map/components/mapPopup.vue  |   24 -
 7 files changed, 488 insertions(+), 581 deletions(-)

diff --git a/src/components/campusNav/index.vue b/src/components/campusNav/index.vue
index 242e268..f694b78 100644
--- a/src/components/campusNav/index.vue
+++ b/src/components/campusNav/index.vue
@@ -73,14 +73,21 @@
 import { mapGetters } from 'vuex'
 import { getSearchList } from '@/api/pc/public/search'
 import axios from 'axios'
+
+const CamPusNavLayer = {
+    campusStartLayer: null,
+    campusEndLayer: null,
+    campusRouteLayer: null
+}
+
 export default {
     name: 'campusNav',
     data () {
         return {
+
             tabOneFlag: true,
             tabTwoFlag: false,
             navigationWay: '步行',
-            routeLayer: null,
             toNameText: '',
             comeNameText: '',
             toNameList: [],
@@ -90,8 +97,6 @@
 
             overChouse: false,
             butChouse: '',
-            startLayer: null,
-            endLayer: null,
 
             pathBoxShow: false,
             pathBoxList: [],
@@ -159,11 +164,11 @@
                 // 若是已经有导航,恢复未点击图标
                 if (val == 'start') {
                     // 初始化图标图层
-                    if (this.endLayer == null) {
-                        this.endLayer = new global.DC.VectorLayer('endLayer')
-                        global.viewer.addLayer(this.endLayer)
+                    if (CamPusNavLayer.campusEndLayer == null) {
+                        CamPusNavLayer.campusEndLayer = new global.DC.VectorLayer('campusEndLayer')
+                        global.viewer.addLayer(CamPusNavLayer.campusEndLayer)
                     } else {
-                        this.endLayer.clear()
+                        CamPusNavLayer.campusEndLayer.clear()
                     }
                     // console.log("baoliuend", "see");
                     that.$store.commit('SET_STARTINGPOINT', [])
@@ -175,14 +180,14 @@
                         ),
                         '/img/navicon/end.png'
                     )
-                    that.endLayer.addOverlay(endEntity)
+                    CamPusNavLayer.campusEndLayer.addOverlay(endEntity)
                 } else if (val == 'end') {
                     // 初始化图标图层
-                    if (this.startLayer == null) {
-                        this.startLayer = new global.DC.VectorLayer('startLayer')
-                        global.viewer.addLayer(this.startLayer)
+                    if (CamPusNavLayer.campusStartLayer == null) {
+                        CamPusNavLayer.campusStartLayer = new global.DC.VectorLayer('campusStartLayer')
+                        global.viewer.addLayer(CamPusNavLayer.campusStartLayer)
                     } else {
-                        this.startLayer.clear()
+                        CamPusNavLayer.campusStartLayer.clear()
                     }
                     // console.log("baoliustart", "see");
                     that.$store.commit('SET_TERMINUS', [])
@@ -194,7 +199,7 @@
                         ),
                         '/img/navicon/start.png'
                     )
-                    that.startLayer.addOverlay(startEntity)
+                    CamPusNavLayer.campusStartLayer.addOverlay(startEntity)
                 }
             }
 
@@ -209,20 +214,20 @@
             if (val == 'start') {
                 title = '点击选择起点'
                 // 初始化图标图层
-                if (this.startLayer == null) {
-                    this.startLayer = new global.DC.VectorLayer('startLayer')
-                    global.viewer.addLayer(this.startLayer)
+                if (CamPusNavLayer.campusStartLayer == null) {
+                    CamPusNavLayer.campusStartLayer = new global.DC.VectorLayer('campusStartLayer')
+                    global.viewer.addLayer(CamPusNavLayer.campusStartLayer)
                 } else {
-                    this.startLayer.clear()
+                    CamPusNavLayer.campusStartLayer.clear()
                 }
             } else if (val == 'end') {
                 title = '点击选择终点'
                 // 初始化图标图层
-                if (this.endLayer == null) {
-                    this.endLayer = new global.DC.VectorLayer('endLayer')
-                    global.viewer.addLayer(this.endLayer)
+                if (CamPusNavLayer.campusEndLayer == null) {
+                    CamPusNavLayer.campusEndLayer = new global.DC.VectorLayer('campusEndLayer')
+                    global.viewer.addLayer(CamPusNavLayer.campusEndLayer)
                 } else {
-                    this.endLayer.clear()
+                    CamPusNavLayer.campusEndLayer.clear()
                 }
             }
             that.overChouse = false // 开启事件
@@ -248,7 +253,7 @@
                         ),
                         '/img/navicon/start.png'
                     )
-                    that.startLayer.addOverlay(startEntity)
+                    CamPusNavLayer.campusStartLayer.addOverlay(startEntity)
                 } else if (that.butChouse == 'end') {
                     that.comeNameText = '自定义终点'
                     // 传输坐标数据
@@ -262,7 +267,7 @@
                         ),
                         '/img/navicon/end.png'
                     )
-                    that.endLayer.addOverlay(endEntity)
+                    CamPusNavLayer.campusEndLayer.addOverlay(endEntity)
                 }
                 title = ''
                 tooltip.enable = false
@@ -290,18 +295,18 @@
             this.comeNameText = ''
             this.comeNameList = []
             this.comeNameShow = false
-            if (this.routeLayer != null) {
-                this.routeLayer.clear()
+            if (CamPusNavLayer.campusRouteLayer != null) {
+                CamPusNavLayer.campusRouteLayer.clear()
                 this.isOverRouter = false
             }
             // 清除自定义位置
-            if (this.startLayer != null) {
-                this.startLayer.clear()
-                // this.startLayer = null;
+            if (CamPusNavLayer.campusStartLayer != null) {
+                CamPusNavLayer.campusStartLayer.clear()
+                // CamPusNavLayer.campusStartLayer = null;
             }
-            if (this.endLayer != null) {
-                this.endLayer.clear()
-                // this.endLayer = null;
+            if (CamPusNavLayer.campusEndLayer != null) {
+                CamPusNavLayer.campusEndLayer.clear()
+                // CamPusNavLayer.campusEndLayer = null;
             }
             this.$store.commit('SET_COMENAME', '')
             this.$store.commit('SET_TERMINUS', null)
@@ -319,20 +324,20 @@
         startNavigation () {
             const that = this
             // 清除自定义位置
-            if (this.startLayer != null) {
-                this.startLayer.clear()
-                // this.startLayer = null;
+            if (CamPusNavLayer.campusStartLayer != null) {
+                CamPusNavLayer.campusStartLayer.clear()
+                // CamPusNavLayer.campusStartLayer = null;
             }
-            if (this.endLayer != null) {
-                this.endLayer.clear()
-                // this.endLayer = null;
+            if (CamPusNavLayer.campusEndLayer != null) {
+                CamPusNavLayer.campusEndLayer.clear()
+                // CamPusNavLayer.campusEndLayer = null;
             }
 
-            if (this.routeLayer == null) {
-                this.routeLayer = new global.DC.VectorLayer('navigation')
-                global.viewer.addLayer(this.routeLayer)
+            if (CamPusNavLayer.campusRouteLayer == null) {
+                CamPusNavLayer.campusRouteLayer = new global.DC.VectorLayer('campusRouteLayer')
+                global.viewer.addLayer(CamPusNavLayer.campusRouteLayer)
             } else {
-                this.routeLayer.clear()
+                CamPusNavLayer.campusRouteLayer.clear()
             }
             if (this.startingPoint == null) {
                 this.$message('请输入起点!!!')
@@ -350,7 +355,7 @@
                 ),
                 '/img/navicon/start.png'
             )
-            this.routeLayer.addOverlay(startEntity)
+            CamPusNavLayer.campusRouteLayer.addOverlay(startEntity)
             // var end = global.DC.Transform.transformWGS84ToCartesian()
             const endEntity = new global.DC.Billboard(
                 new global.DC.Position(
@@ -360,7 +365,7 @@
                 ),
                 '/img/navicon/end.png'
             )
-            this.routeLayer.addOverlay(endEntity)
+            CamPusNavLayer.campusRouteLayer.addOverlay(endEntity)
 
             var routes = ''
 
@@ -429,9 +434,9 @@
                             }),
                             clampToGround: true
                         })
-                        this.routeLayer.addOverlay(polyline)
+                        CamPusNavLayer.campusRouteLayer.addOverlay(polyline)
                         if (this.twoOrThree == '真三维') {
-                            global.viewer.flyTo(this.routeLayer)
+                            global.viewer.flyTo(CamPusNavLayer.campusRouteLayer)
                         } else {
                             var longitude = null
                             var latitude = null
@@ -513,10 +518,10 @@
                             }),
                             clampToGround: true
                         })
-                        this.routeLayer.addOverlay(polyline)
+                        CamPusNavLayer.campusRouteLayer.addOverlay(polyline)
 
                         if (this.twoOrThree == '真三维') {
-                            global.viewer.flyTo(this.routeLayer)
+                            global.viewer.flyTo(CamPusNavLayer.campusRouteLayer)
                         } else {
                             var longitude = null
                             var latitude = null
@@ -557,8 +562,8 @@
         },
 
         clearLayer () {
-            if (this.routeLayer != null) {
-                this.routeLayer.clear()
+            if (CamPusNavLayer.campusRouteLayer != null) {
+                CamPusNavLayer.campusRouteLayer.clear()
             }
         },
 
diff --git a/src/components/leftNav/index.vue b/src/components/leftNav/index.vue
index 9d8337d..561d102 100644
--- a/src/components/leftNav/index.vue
+++ b/src/components/leftNav/index.vue
@@ -22,6 +22,18 @@
     getTagList
 } from '@/api/pc/leftNav/index'
 import { mapGetters } from 'vuex'
+
+const LeftNavLayer = {
+    leftTagLayer: null,
+    leftWayLayer: null,
+    leftSceneLayer: null,
+    leftMonitorLayer: null,
+    leftActivityLayer: null,
+    leftAedLayer: null,
+    leftParkLayer: null,
+    leftComeLayer: null
+}
+
 export default {
     name: 'leftNav',
     computed: {
@@ -39,7 +51,7 @@
                     img: '/img/leftnav/tag-checked.png',
                     normal: '/img/leftnav/tag.png',
                     checked: '/img/leftnav/tag-checked.png',
-                    layer: 'tagLayer'
+                    layer: 'leftTagLayer'
                 },
                 {
                     flag: false,
@@ -47,7 +59,7 @@
                     img: '/img/leftnav/way.png',
                     normal: '/img/leftnav/way.png',
                     checked: '/img/leftnav/way-checked.png',
-                    layer: 'wayLayer'
+                    layer: 'leftWayLayer'
                 },
                 {
                     flag: false,
@@ -55,7 +67,7 @@
                     img: '/img/leftnav/scene.png',
                     normal: '/img/leftnav/scene.png',
                     checked: '/img/leftnav/scene-checked.png',
-                    layer: 'sceneLayer'
+                    layer: 'leftSceneLayer'
                 },
                 {
                     flag: false,
@@ -63,7 +75,7 @@
                     img: '/img/leftnav/monitor.png',
                     normal: '/img/leftnav/monitor.png',
                     checked: '/img/leftnav/monitor-checked.png',
-                    layer: 'monitorLayer'
+                    layer: 'leftMonitorLayer'
                 },
                 // {
                 //     flag: false,
@@ -71,7 +83,7 @@
                 //     img: '/img/leftnav/activity.png',
                 //     normal: '/img/leftnav/activity.png',
                 //     checked: '/img/leftnav/activity-checked.png',
-                //     layer: 'activityLayer'
+                //     layer: 'leftActivityLayer'
                 // },
                 // {
                 //     flag: false,
@@ -79,7 +91,7 @@
                 //     img: '/img/leftnav/aed.png',
                 //     normal: '/img/leftnav/aed.png',
                 //     checked: '/img/leftnav/aed-checked.png',
-                //     layer: 'aedLayer'
+                //     layer: 'leftAedLayer'
                 // },
                 {
                     flag: false,
@@ -87,7 +99,7 @@
                     img: '/img/leftnav/park.png',
                     normal: '/img/leftnav/park.png',
                     checked: '/img/leftnav/park-checked.png',
-                    layer: 'parkLayer'
+                    layer: 'leftParkLayer'
                 },
                 {
                     flag: false,
@@ -95,17 +107,9 @@
                     img: '/img/leftnav/come.png',
                     normal: '/img/leftnav/come.png',
                     checked: '/img/leftnav/come-checked.png',
-                    layer: 'comeLayer'
+                    layer: 'leftComeLayer'
                 }
-            ],
-            tagLayer: null,
-            wayLayer: null,
-            sceneLayer: null,
-            monitorLayer: null,
-            activityLayer: null,
-            aedLayer: null,
-            parkLayer: null,
-            comeLayer: null
+            ]
         }
     },
     created () {
@@ -124,8 +128,8 @@
     methods: {
         reself () {
             const that = this
-            if (this.tagLayer) {
-                this.tagLayer.clear()
+            if (LeftNavLayer.leftTagLayer) {
+                LeftNavLayer.leftTagLayer.clear()
             }
             getTagList().then((res) => {
                 res.data.data.forEach((item) => {
@@ -153,9 +157,9 @@
                             item: item
                         })
                     })
-                    this.tagLayer.addOverlay(divIcon)
+                    LeftNavLayer.leftTagLayer.addOverlay(divIcon)
                     if (!this.leftNavData[0].flag) {
-                        this.tagLayer.show = false
+                        LeftNavLayer.leftTagLayer.show = false
                     }
                 })
             })
@@ -192,29 +196,36 @@
             item.flag = !item.flag
             if (item.flag == true) {
                 item.img = item.checked
-                this[item.layer].show = true
+                LeftNavLayer[item.layer].show = true
             } else {
                 item.img = item.normal
-                this[item.layer].show = false
+                LeftNavLayer[item.layer].show = false
             }
         },
         initialize () {
             var that = this
             global.viewer.scene.globe.depthTestAgainstTerrain = false
-            this.tagLayer = new global.DC.HtmlLayer('tagLayer')
-            global.viewer.addLayer(this.tagLayer)
-            this.wayLayer = new global.DC.HtmlLayer('wayLayer')
-            global.viewer.addLayer(this.wayLayer)
-            this.sceneLayer = new global.DC.HtmlLayer('sceneLayer')
-            global.viewer.addLayer(this.sceneLayer)
-            this.monitorLayer = new global.DC.HtmlLayer('monitorLayer')
-            global.viewer.addLayer(this.monitorLayer)
-            this.aedLayer = new global.DC.VectorLayer('aedLayer')
-            global.viewer.addLayer(this.aedLayer)
-            this.parkLayer = new global.DC.HtmlLayer('parkLayer')
-            global.viewer.addLayer(this.parkLayer)
-            this.comeLayer = new global.DC.VectorLayer('comeLayer')
-            global.viewer.addLayer(this.comeLayer)
+
+            LeftNavLayer.leftTagLayer = new global.DC.HtmlLayer('leftTagLayer')
+            global.viewer.addLayer(LeftNavLayer.leftTagLayer)
+
+            LeftNavLayer.leftWayLayer = new global.DC.HtmlLayer('leftWayLayer')
+            global.viewer.addLayer(LeftNavLayer.leftWayLayer)
+
+            LeftNavLayer.leftSceneLayer = new global.DC.HtmlLayer('leftSceneLayer')
+            global.viewer.addLayer(LeftNavLayer.leftSceneLayer)
+
+            LeftNavLayer.leftMonitorLayer = new global.DC.HtmlLayer('leftMonitorLayer')
+            global.viewer.addLayer(LeftNavLayer.leftMonitorLayer)
+
+            LeftNavLayer.leftAedLayer = new global.DC.VectorLayer('leftAedLayer')
+            global.viewer.addLayer(LeftNavLayer.leftAedLayer)
+
+            LeftNavLayer.leftParkLayer = new global.DC.HtmlLayer('leftParkLayer')
+            global.viewer.addLayer(LeftNavLayer.leftParkLayer)
+
+            LeftNavLayer.leftComeLayer = new global.DC.VectorLayer('leftComeLayer')
+            global.viewer.addLayer(LeftNavLayer.leftComeLayer)
 
             getTagList().then((res) => {
                 res.data.data.forEach((item) => {
@@ -243,9 +254,9 @@
                             item: item
                         })
                     })
-                    this.tagLayer.addOverlay(divIcon)
+                    LeftNavLayer.leftTagLayer.addOverlay(divIcon)
                 })
-                // this.tagLayer.show = false
+                // LeftNavLayer.leftTagLayer.show = false
             })
 
             getWayList().then((res) => {
@@ -263,9 +274,9 @@
                         </div>
                     `
                     )
-                    this.wayLayer.addOverlay(divIcon)
+                    LeftNavLayer.leftWayLayer.addOverlay(divIcon)
                 })
-                this.wayLayer.show = false
+                LeftNavLayer.leftWayLayer.show = false
             })
 
             getMonitorList().then((res) => {
@@ -280,7 +291,7 @@
                         `
                     )
                     divIcon.attrParams = item
-                    this.monitorLayer.addOverlay(divIcon)
+                    LeftNavLayer.leftMonitorLayer.addOverlay(divIcon)
 
                     divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
                         global.viewer.flyToPosition(
@@ -319,7 +330,7 @@
                     })
                 })
 
-                this.monitorLayer.show = false
+                LeftNavLayer.leftMonitorLayer.show = false
             })
 
             getSceneList().then((res) => {
@@ -334,7 +345,7 @@
                         `
                     )
                     divIcon.attrParams = item
-                    this.sceneLayer.addOverlay(divIcon)
+                    LeftNavLayer.leftSceneLayer.addOverlay(divIcon)
 
                     divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
                         global.viewer.flyToPosition(
@@ -376,7 +387,7 @@
                     })
                 })
 
-                this.sceneLayer.show = false
+                LeftNavLayer.leftSceneLayer.show = false
             })
 
             getLifeList({ lifetype: 9 }).then((res) => {
@@ -393,7 +404,7 @@
                         font: '14px sans-serif',
                         pixelOffset: { x: 0, y: -24 }
                     })
-                    this.aedLayer.addOverlay(label)
+                    LeftNavLayer.leftAedLayer.addOverlay(label)
 
                     const billboard = new global.DC.Billboard(
                         new global.DC.Position(Number(item.jd), Number(item.wd), 0),
@@ -401,9 +412,9 @@
                     )
                     billboard.size = [20, 20]
 
-                    this.aedLayer.addOverlay(billboard)
+                    LeftNavLayer.leftAedLayer.addOverlay(billboard)
                 })
-                this.aedLayer.show = false
+                LeftNavLayer.leftAedLayer.show = false
             })
 
             getLifeList({ lifetype: 11 }).then((res) => {
@@ -425,9 +436,9 @@
                         </div>
                     `
                     )
-                    this.parkLayer.addOverlay(divIcon)
+                    LeftNavLayer.leftParkLayer.addOverlay(divIcon)
                 })
-                this.parkLayer.show = false
+                LeftNavLayer.leftParkLayer.show = false
             })
 
             getLifeList({ lifetype: 12 }).then((res) => {
@@ -444,7 +455,7 @@
                         font: '14px sans-serif',
                         pixelOffset: { x: 0, y: -40 }
                     })
-                    that.comeLayer.addOverlay(label)
+                    LeftNavLayer.leftComeLayer.addOverlay(label)
 
                     const billboard = new global.DC.Billboard(
                         new global.DC.Position(Number(item.jd), Number(item.wd), 0),
@@ -455,9 +466,9 @@
                         pixelOffset: { x: 0, y: -16 }
                     })
 
-                    that.comeLayer.addOverlay(billboard)
+                    LeftNavLayer.leftComeLayer.addOverlay(billboard)
                 })
-                this.comeLayer.show = false
+                LeftNavLayer.leftComeLayer.show = false
             })
         },
         openPopups (value) {
diff --git a/src/components/map/components/dimension.vue b/src/components/map/components/dimension.vue
index 7cab4a4..6a39dd1 100644
--- a/src/components/map/components/dimension.vue
+++ b/src/components/map/components/dimension.vue
@@ -12,21 +12,30 @@
 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
+
+const wallLayer = null
+
 export default {
     name: 'dimension',
     data () {
         return {
             dimensionValue: '三 维',
             // 建筑2.5D地图
-            newLayer: null,
-            baseLayer: null,
             // 建筑2.5D面数据
-            provider: null,
-            wallLayer: null,
-            tileset: null,
-            tilesetLayer: null,
             titlesetLayerFlag: false,
-            silhouetteBlue: null,
             wallArr: [
                 [114.04006133, 27.628038, 100],
                 [114.04020623, 27.62809403, 100],
@@ -60,7 +69,6 @@
             mapCenter: [115.871863, 28.743861, 400.0]
         }
     },
-    props: ['areaLayer'],
     computed: {
         ...mapGetters([
             'viewerExist',
@@ -72,6 +80,10 @@
         ])
     },
     created () {
+        select = {
+            overlay: null,
+            color: null
+        }
     },
     watch: {
         viewerExist: {
@@ -80,25 +92,16 @@
                 if (this.titlesetLayerFlag == false && newCode == true) {
                     var that = this
 
-                    that.tilesetLayer = new global.DC.TilesetLayer('tilesetLayer')
-                    global.viewer.addLayer(that.tilesetLayer)
-                    that.tileset = new global.DC.Tileset('/mx/tileset.json', {
-                        luminanceAtZenith: 0.3,
-                        shadows: global.DC.Namespace.Cesium.ShadowMode.DISABLED
-                    })
-                    that.tilesetLayer.addOverlay(that.tileset)
-                    that.tilesetLayer.show = false
-
-                    that.silhouetteBlue =
+                    silhouetteBlue =
                         global.DC.Namespace.Cesium.PostProcessStageLibrary.createEdgeDetectionStage()
-                    that.silhouetteBlue.uniforms.color =
+                    silhouetteBlue.uniforms.color =
                         global.DC.Namespace.Cesium.Color.fromBytes(9, 162, 40)
-                    that.silhouetteBlue.uniforms.length = 0.01
-                    that.silhouetteBlue.selected = []
+                    silhouetteBlue.uniforms.length = 0.01
+                    silhouetteBlue.selected = []
 
                     global.viewer.scene.postProcessStages.add(
                         global.DC.Namespace.Cesium.PostProcessStageLibrary.createSilhouetteStage(
-                            [that.silhouetteBlue]
+                            [silhouetteBlue]
                         )
                     )
 
@@ -148,16 +151,6 @@
                     //     })
                     // )
 
-                    var highlighted = {
-                        feature: undefined,
-                        originalColor: new global.DC.Namespace.Cesium.Color()
-                    }
-
-                    var selected = {
-                        feature: undefined,
-                        originalColor: new global.DC.Namespace.Cesium.Color()
-                    }
-
                     const videoLayer = new global.DC.CameraVideoLayer('video-layer').addTo(
                         global.viewer
                     )
@@ -173,176 +166,32 @@
                         aspectRatio: 1.3,
                         alpha: 0.7
                     })
+
                     videoLayer.addOverlay(cameraVideo)
 
-                    that.tileset.on(global.DC.MouseEventType.CLICK, (e) => {
-                        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)
-                                )
-                            )
-                        }
-                    })
-
-                    // that.tileset.on(global.DC.MouseEventType.MOUSE_MOVE, e => {
-                    //     that.silhouetteBlue.selected = []
-
-                    //     if (global.DC.Namespace.Cesium.defined(highlighted.feature)) {
-                    //         highlighted.feature.color = highlighted.originalColor
-                    //         highlighted.feature = undefined
-                    //     }
-
-                    //     if (e.feature !== selected.feature) {
-                    //         that.silhouetteBlue.selected = [e.feature]
-
-                    //         highlighted.feature = e.feature
-
-                    //         global.DC.Namespace.Cesium.Color.clone(
-                    //             e.feature.color,
-                    //             highlighted.originalColor
-                    //         )
-                    //         e.feature.color = global.DC.Namespace.Cesium.Color.fromBytes(155, 255, 175)
-                    //     }
-                    // })
-
-                    // var provider = new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
-                    //     url: 'http://www.tdtfz.com/OneMapServer/rest/services/fzsw2019/MapServer/WMTS/tile/1.0.0/fzsw2019/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}',
-                    //     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'
-                    //     ]
-                    // })
-
-                    var provider =
-                        new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+                    baseMapLayer =
+                        global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                             url: '/wp/{z}/{x}/{y}.png',
                             fileExtension: 'png'
                             // minimumLevel: 19
-                        })
+                        }))
 
-                    var baseProvider =
-                        new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
-                            url: '/base/{z}/{x}/{y}.png',
-                            fileExtension: 'png'
-                        })
+                    // wallLayer = new global.DC.VectorLayer('wallLayer')
+                    // global.viewer.addLayer(wallLayer)
 
-                    // that.baseLayer = global.viewer.imageryLayers.addImageryProvider(baseProvider)
-                    that.newLayer =
-                        global.viewer.imageryLayers.addImageryProvider(provider)
-
-                    that.wallLayer = new global.DC.VectorLayer('wallLayer')
-                    // global.viewer.addLayer(that.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
-                        })
-                    })
-                    // that.wallLayer.addOverlay(wall)
+                    // 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的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
@@ -414,98 +263,15 @@
                     // 视角旋转
                     global.viewer.scene.screenSpaceCameraController.enableTilt = false
 
-                    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(',')
-                                })
+                    that.createdLayers()
 
-                                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
-                                    )
-                                })
-
-                                that.areaLayer.addOverlay(polygon)
-                            })
-
-                            that.areaLayer.show = true
-                        })
-
-                    var select = {
-                        overlay: undefined,
-                        color: undefined
-                    }
-
-                    global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, (e) => {
-                        if (that.closeMapClick) {
-                            return
-                        }
-                        if (e.overlay != undefined && e.layer.id == 'areaLayer') {
-                            if (select.overlay != undefined) {
-                                if (e.overlay != select.overlay) {
-                                    select.overlay.setStyle({
-                                        material: select.color,
-                                        outline: false
-                                    })
-
-                                    select.overlay = undefined
-                                    select.color = undefined
-                                }
-                            }
-
-                            if (select.overlay == undefined) {
-                                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 != undefined) {
-                                select.overlay.setStyle({
-                                    material: select.color,
-                                    outline: false
-                                })
-
-                                select.overlay = undefined
-                                select.color = undefined
-                            }
-                        }
-                    })
+                    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 == 'areaLayer') {
+                        if (e.overlay != undefined && e.layer.id == 'DefaultAreaLayer') {
                             var rid =
                                 e.overlay.attr['楼栋号'] == '8栋'
                                     ? '9栋'
@@ -761,122 +527,299 @@
                             }
                         }
 
-                    global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, () => {
-                        if (
-                            that.dimensionValue != undefined &&
-                            that.dimensionValue != '真三维'
-                        ) {
-                            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 <= 250) {
-                                global.viewer.camera.setView({
-                                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                                        global.viewer.camera.positionCartographic.longitude,
-                                        global.viewer.camera.positionCartographic.latitude,
-                                        220
-                                    ),
-                                    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 <= 310) {
-                                global.viewer.camera.setView({
-                                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                                        global.viewer.camera.positionCartographic.longitude,
-                                        global.viewer.camera.positionCartographic.latitude,
-                                        280
-                                    ),
-                                    orientation: {
-                                        // 指向
-                                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                                        // 视角
-                                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                                        roll: 0.0
-                                    }
-                                })
-                            }
-
-                            if (height > 310 && height <= 370) {
-                                global.viewer.camera.setView({
-                                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
-                                        global.viewer.camera.positionCartographic.longitude,
-                                        global.viewer.camera.positionCartographic.latitude,
-                                        340
-                                    ),
-                                    orientation: {
-                                        // 指向
-                                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
-                                        // 视角
-                                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
-                                        roll: 0.0
-                                    }
-                                })
-                            }
-
-                            if (height > 370) {
-                                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
-                                    }
-                                })
-                            }
-                        }
-                    })
+                    global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
                 }
             }
         }
     },
     methods: {
-        // openPopups(lng, lat, alt) {
-        //   var popup = new global.DC.DivForms(global.viewer, {
-        //     domId: "divFormsDomBox",
-        //     position: [
-        //       global.DC.Transform.transformWGS84ToCartesian(
-        //         new global.DC.Position(Number(lng), Number(lat), Number(alt))
-        //       ),
-        //     ],
-        //   });
-        // },
+        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 <= 250) {
+                global.viewer.camera.setView({
+                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                        global.viewer.camera.positionCartographic.longitude,
+                        global.viewer.camera.positionCartographic.latitude,
+                        220
+                    ),
+                    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 <= 310) {
+                global.viewer.camera.setView({
+                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                        global.viewer.camera.positionCartographic.longitude,
+                        global.viewer.camera.positionCartographic.latitude,
+                        280
+                    ),
+                    orientation: {
+                        // 指向
+                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                        // 视角
+                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                        roll: 0.0
+                    }
+                })
+            }
+
+            if (height > 310 && height <= 370) {
+                global.viewer.camera.setView({
+                    destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians(
+                        global.viewer.camera.positionCartographic.longitude,
+                        global.viewer.camera.positionCartographic.latitude,
+                        340
+                    ),
+                    orientation: {
+                        // 指向
+                        heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                        // 视角
+                        pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                        roll: 0.0
+                    }
+                })
+            }
+
+            if (height > 370) {
+                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
+                    }
+                })
+            }
+        },
+
+        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)
+                    )
+                )
+            }
+        },
+
         dimensionChange () {
             var that = this
-            that.$store.commit('SET_TWOORTHREE', that.dimensionValue)
-            if (that.dimensionValue == '真三维') {
-                // that.wallLayer.show = false
-                that.areaLayer.show = false
-                global.viewer.imageryLayers.remove(that.newLayer)
-                that.newLayer = null
-                // global.viewer.imageryLayers.remove(that.baseLayer)
-                that.baseLayer = null
 
-                that.silhouetteBlue.selected = []
-                that.tilesetLayer.show = true
+            that.$store.commit('SET_TWOORTHREE', that.dimensionValue)
+
+            if (that.dimensionValue == '真三维') {
+                global.viewer.off(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent)
+                global.viewer.off(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
+                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.3,
+                    shadows: global.DC.Namespace.Cesium.ShadowMode.DISABLED
+                })
+                tilesetLayer.addOverlay(tileset)
+                tileset.on(global.DC.MouseEventType.CLICK, that.tilesetClick)
+                tilesetLayer.show = true
                 // 最小
                 global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 1.0
                 // 最大
@@ -902,29 +845,20 @@
                     }
                 })
             } else {
-                that.tilesetLayer.show = false
+                global.viewer.on(global.DC.MouseEventType.MOUSE_MOVE, that.mouseMoveEvent)
+                global.viewer.on(global.DC.SceneEventType.CAMERA_CHANGED, that.mapCameraEvent)
+                tileset.off(global.DC.MouseEventType.CLICK, that.tilesetClick)
+                tilesetLayer.removeOverlay(tileset)
+                global.viewer.remove(tilesetLayer)
+                tileset = null
+                tilesetLayer = null
+                tilesetLayer.show = false
+                that.createdLayers()
 
-                that.areaLayer.show = true
-
-                // var provider = new global.DC.Namespace.Cesium.ArcGisMapServerImageryProvider({
-                //     url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/PingXiang25DMapQP/MapServer'
-                // })
-
-                var provider = new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+                baseMapLayer = global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                     url: '/wp/{z}/{x}/{y}.png',
                     fileExtension: 'png'
-                })
-
-                var baseProvider =
-                    new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
-                        url: '/base/{z}/{x}/{y}.png',
-                        fileExtension: 'png'
-                    })
-
-                // that.baseLayer = global.viewer.imageryLayers.addImageryProvider(baseProvider)
-                that.newLayer = global.viewer.imageryLayers.addImageryProvider(provider)
-
-                // that.wallLayer.show = true
+                }))
 
                 global.viewer.camera.setView({
                     // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
diff --git a/src/components/map/components/mapPopup.vue b/src/components/map/components/mapPopup.vue
index c3af8c7..6b91926 100644
--- a/src/components/map/components/mapPopup.vue
+++ b/src/components/map/components/mapPopup.vue
@@ -481,7 +481,6 @@
             fullscreen: false,
             fullScreenUrl: '/img/icon/bigScreen.png',
             addTagName: '',
-            addTagLayer: null,
             addIconFromcolumn: [
                 // 顺序不要随便换
                 {
@@ -1023,11 +1022,6 @@
 
             this.$store.commit('SET_ADDTAGPOPUP', false)
 
-            //   if (this.addTagLayer == null) {
-            //     this.addTagLayer = new global.DC.HtmlLayer("addTagLayer");
-            //     global.viewer.addLayer(this.addTagLayer);
-            //   }
-
             // 2022.3.2对接接口
             // 新增标签
             const data = {
@@ -1056,24 +1050,6 @@
                     // list: [data],
                     add: true
                 })
-                // const divIcon = new global.DC.DivIcon(
-                //   new global.DC.Position(
-                //     Number(that.addTagPosition.lng),
-                //     Number(that.addTagPosition.lat),
-                //     0
-                //   ),
-                //   `
-                //                 <div class="tag-entitys-box">
-                //                     <div class="tag-content">
-                //                         ${that.addTagName}
-                //                     </div>
-                //                     <div class="tag-angle-content">
-                //                         <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
-                //                     </div>
-                //                 </div>
-                //             `
-                // );
-                // this.addTagLayer.addOverlay(divIcon);
             }
         },
 
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 6bab02a..77fa98f 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -29,7 +29,7 @@
       "
         >智慧校区</div>
 
-        <dimension :areaLayer="areaLayer" />
+        <dimension />
 
         <left-nav ref="leftNav"></left-nav>
 
@@ -66,7 +66,6 @@
     },
     data () {
         return {
-            areaLayer: null,
             samllMapFlag: false
         }
     },
@@ -384,8 +383,6 @@
             //     })
             // })
 
-            that.createdLayers()
-
             that.$refs.leftNav.initialize()
 
             // const key = '0f7c1d161d7352116a21aacf0e9f44c1'
@@ -398,9 +395,9 @@
             // })
             // global.viewer.addBaseLayer([vec, cva])
 
-            // const areaLayer = new global.DC.VectorLayer('areaLayer')
+            // global.pcLayer.DefaultAreaLayer = new global.DC.VectorLayer('DefaultAreaLayer')
 
-            // global.viewer.addLayer(areaLayer)
+            // global.viewer.addLayer(global.pcLayer.DefaultAreaLayer)
 
             // axios.get('http://59.55.128.156:6080/arcgis/rest/services/xiajiangfhgc/MapServer/4/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 => {
@@ -418,7 +415,7 @@
 
             //         })
 
-            //         areaLayer.addOverlay(polygon)
+            //         global.pcLayer.DefaultAreaLayer.addOverlay(polygon)
             //     })
             // })
 
@@ -534,14 +531,6 @@
         mapClick (e) {
             this.$refs.campusNavRoute.shortcutShow(e)
             this.$refs.campusBuildingSearch.shortcutShow(e)
-        },
-
-        createdLayers () {
-            const layerGroup = new global.DC.LayerGroup('modelBox')
-            global.viewer.addLayerGroup(layerGroup)
-
-            this.areaLayer = new global.DC.VectorLayer('areaLayer')
-            layerGroup.addLayer(this.areaLayer)
         }
     }
 }
diff --git a/src/main.js b/src/main.js
index 041d20a..664febd 100644
--- a/src/main.js
+++ b/src/main.js
@@ -42,22 +42,14 @@
 Vue.component(CollapseTransition.name, CollapseTransition) // 主要样式
 
 global.DC = DC // 将DC提升到全局变量,方便在工程中直接使用
-// global.pcLayer = {
-//     areaLayer: null,
-//     // 左侧菜单
-//     leftTagLayer: null,
-//     leftWayLayer: null,
-//     leftSceneLayer: null,
-//     leftMonitorLayer: null,
-//     leftActivityLayer: null,
-//     leftAedLayer: null,
-//     leftParkLayer: null,
-//     leftComeLayer: null,
-//     // 导航
-//     campusStartLayer: null,
-//     campusEndLayer: null,
-//     campusRouteLayer: null
-// }
+global.pcLayer = {
+    // 左侧菜单
+
+    // 导航
+
+    // 默认底图
+    tilesetLayer: null
+}
 global.viewer = null // 将viewer提升到全局变量,方便在工程中直接使用
 DC.accessToken = 'U2FsdGVkX19E68JwtuCiNYLQg2UETLoPcwbGWsp4SejjwWVGadfsVjxZ4AGTQDzle7IlVcGFE8ZNPxxFr5gOThfeJdsOCWDWe7gJPishuAw='
 global.echarts = echarts // 将DC提升到全局变量,方便在工程中直接使用
diff --git a/src/pcviews/specialmap/welcome.vue b/src/pcviews/specialmap/welcome.vue
index 78c2e4f..f1cb15d 100644
--- a/src/pcviews/specialmap/welcome.vue
+++ b/src/pcviews/specialmap/welcome.vue
@@ -80,6 +80,9 @@
 import { getWelcome } from '@/api/pc/public/specialmap'
 import { mapGetters } from 'vuex'
 
+let pathLayer = null
+let pointLayer = null
+
 export default {
     data () {
         return {
@@ -92,8 +95,6 @@
             pathList: [],
             pointNameList: [],
             pointList: [],
-            pathLayer: null,
-            pointLayer: null,
             panoramaUrlOne: '',
             panoramaUrl: '',
             audioSource: '',
@@ -123,7 +124,6 @@
     },
     computed: {
         ...mapGetters([
-            'viewer',
             // 校区内导航的显示关闭
             'campusNavFlag',
             'orgNavBarFlag',
@@ -165,11 +165,11 @@
                     this.pathList.push(k)
                 })
 
-                this.pathLayer = new global.DC.VectorLayer('pathLayer')
-                this.viewer.addLayer(this.pathLayer)
+                pathLayer = new global.DC.VectorLayer('pathLayer')
+                global.viewer.addLayer(pathLayer)
 
-                this.pointLayer = new global.DC.HtmlLayer('pointLayer')
-                this.viewer.addLayer(this.pointLayer)
+                pointLayer = new global.DC.HtmlLayer('pointLayer')
+                global.viewer.addLayer(pointLayer)
 
                 this.pathList.forEach((item) => {
                     this.drawPolyline(item)
@@ -180,13 +180,13 @@
                 })
                 if (this.pointList.length > 0) {
                     this.$store.dispatch('pcMoveView', {
-                        viewer: this.viewer,
+                        viewer: global.viewer,
                         jd: +this.pointList[0].split(',')[0] - 0.0005,
                         wd: this.pointList[0].split(',')[1]
                     })
                 } else {
                     this.$store.dispatch('pcMoveView', {
-                        viewer: this.viewer,
+                        viewer: global.viewer,
                         jd: +this.pathList[0].split(';')[0].split(',')[0] - 0.0005,
                         wd: this.pathList[0].split(';')[0].split(',')[1]
                     })
@@ -208,7 +208,7 @@
                 clampToGround: true
             })
 
-            this.pathLayer.addOverlay(polyline)
+            pathLayer.addOverlay(polyline)
         },
         drawPoint (item, name) {
             const divIcon = new global.DC.DivIcon(
@@ -224,7 +224,7 @@
                     </div>
                 `
             )
-            this.pointLayer.addOverlay(divIcon)
+            pointLayer.addOverlay(divIcon)
         },
         audioPlay () {
             if (this.audioFlag == false) {
@@ -243,8 +243,8 @@
             }
         },
         closeModel () {
-            this.viewer.removeLayer(this.pathLayer)
-            this.viewer.removeLayer(this.pointLayer)
+            global.viewer.removeLayer(pathLayer)
+            global.viewer.removeLayer(pointLayer)
 
             this.audioSynth.cancel()
             this.audioFlag = false
@@ -260,8 +260,8 @@
     },
     destroyed () {
         this.audioSynth.cancel()
-        this.viewer.removeLayer(this.pathLayer)
-        this.viewer.removeLayer(this.pointLayer)
+        global.viewer.removeLayer(pathLayer)
+        global.viewer.removeLayer(pointLayer)
         // console.log("关闭", "see1");
     }
 }

--
Gitblit v1.9.3