From 81f54040c2cb65537c6c6e1db8358a39a57dea0d Mon Sep 17 00:00:00 2001
From: mayisheng <admin>
Date: Mon, 15 Aug 2022 16:14:01 +0800
Subject: [PATCH] 1

---
 src/components/campusNav/index.vue |  133 +++++++++++++++++++++++++-------------------
 1 files changed, 76 insertions(+), 57 deletions(-)

diff --git a/src/components/campusNav/index.vue b/src/components/campusNav/index.vue
index 242e268..c6e43a2 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
@@ -278,6 +283,7 @@
                 tooltip.showAt(e.windowPosition, title)
             })
         },
+
         closeModel () {
             if (this.$route.path.indexOf('/campusnavi') != -1) {
                 this.$store.dispatch('delVisitedViews', this.$route)
@@ -290,18 +296,21 @@
             this.comeNameText = ''
             this.comeNameList = []
             this.comeNameShow = false
-            if (this.routeLayer != null) {
-                this.routeLayer.clear()
+            this.pathBoxList = []
+            this.pathBoxShow = false
+
+            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 +328,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 +359,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 +369,7 @@
                 ),
                 '/img/navicon/end.png'
             )
-            this.routeLayer.addOverlay(endEntity)
+            CamPusNavLayer.campusRouteLayer.addOverlay(endEntity)
 
             var routes = ''
 
@@ -422,16 +431,20 @@
 
                         const polyline = new global.DC.Polyline(routes)
                         polyline.setStyle({
-                            width: 3,
-                            material: new global.DC.PolylineTrailMaterialProperty({
-                                color: global.DC.Color.RED,
-                                speed: 10
+                            width: 6,
+                            arcType: true,
+                            material: new global.DC.PolylineImageTrailMaterialProperty({
+                                color: global.DC.Namespace.Cesium.Color.fromBytes(10, 255, 10),
+                                speed: 60,
+                                image: '/img/icon/right.png',
+                                repeat: { x: 320, y: 1 }
                             }),
                             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
@@ -506,17 +519,21 @@
 
                         const polyline = new global.DC.Polyline(routes)
                         polyline.setStyle({
-                            width: 3,
-                            material: new global.DC.PolylineTrailMaterialProperty({
-                                color: global.DC.Color.RED,
-                                speed: 10
+                            width: 6,
+                            arcType: true,
+                            material: new global.DC.PolylineImageTrailMaterialProperty({
+                                color: global.DC.Namespace.Cesium.Color.fromBytes(10, 255, 10),
+                                speed: 60,
+                                image: '/img/icon/right.png',
+                                repeat: { x: 320, y: 1 }
                             }),
                             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 +574,10 @@
         },
 
         clearLayer () {
-            if (this.routeLayer != null) {
-                this.routeLayer.clear()
+            if (CamPusNavLayer.campusRouteLayer != null) {
+                CamPusNavLayer.campusRouteLayer.clear()
+                this.pathBoxList = []
+                this.pathBoxShow = false
             }
         },
 

--
Gitblit v1.9.3