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/orgNavBar/index.vue |  168 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 135 insertions(+), 33 deletions(-)

diff --git a/src/components/orgNavBar/index.vue b/src/components/orgNavBar/index.vue
index bb43859..b5d59cb 100644
--- a/src/components/orgNavBar/index.vue
+++ b/src/components/orgNavBar/index.vue
@@ -64,10 +64,22 @@
                     global.viewer.addLayer(currentOrgLayer)
 
                     newData.forEach((item, index) => {
+                        let obj = {}
+                        if (item.x && item.x != '') {
+                            const position = this.coordinate(item.x)
+                            obj = {
+                                lng: position.lng, lat: position.lat
+                            }
+                        } else {
+                            obj = {
+                                lng: item.longitude, lat: item.latitude
+                            }
+                        }
+
                         let divIcon = null
                         if (this.twoOrThree == '三 维') {
                             divIcon = new global.DC.DivIcon(
-                                new global.DC.Position(Number(item.longitude), Number(item.latitude), 0),
+                                new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
                                 `
                                 <div class="tag-entitys-box">
                                     <div class="tag-content">
@@ -81,7 +93,7 @@
                             )
                         } else {
                             divIcon = new global.DC.DivIcon(
-                                new global.DC.Position(Number(item.longitude), Number(item.latitude), 150),
+                                new global.DC.Position(Number(item.longitude), Number(item.latitude), 50),
                                 `
                                 <div class="tag-entitys-box">
                                     <div class="tag-content">
@@ -97,6 +109,8 @@
 
                         divIcon.attr.name = item.navTitle
 
+                        divIcon.attr.params = item
+
                         currentOrgLayer.addOverlay(divIcon)
                     })
                 } else {
@@ -110,13 +124,14 @@
                 if (newData == '三 维') {
                     if (currentOrgLayer != null) {
                         currentOrgLayer.eachOverlay((item) => {
-                            item.position = new global.DC.Position(Number(item.position.lng), Number(item.position.lat), 0)
+                            const position = this.coordinate(item.attr.params.x)
+                            item.position = new global.DC.Position(Number(position.lng), Number(position.lat), 0)
                         })
                     }
                 } else {
                     if (currentOrgLayer != null) {
                         currentOrgLayer.eachOverlay((item) => {
-                            item.position = new global.DC.Position(Number(item.position.lng), Number(item.position.lat), 150)
+                            item.position = new global.DC.Position(Number(item.attr.params.jd), Number(item.attr.params.wd), 50)
                         })
                     }
                 }
@@ -125,6 +140,15 @@
         }
     },
     methods: {
+        coordinate (item) {
+            const arr = item.split(',')
+
+            return {
+                lng: arr[0],
+                lat: arr[1]
+            }
+        },
+
         removeLayer () {
             if (currentOrgLayer != null) {
                 global.viewer.removeLayer(currentOrgLayer)
@@ -133,20 +157,25 @@
         },
 
         mapPopup (item) {
+            let obj = {}
+
+            if (item.x && item.x != '') {
+                const position = this.coordinate(item.x)
+                obj = {
+                    lng: position.lng, lat: position.lat
+                }
+            } else {
+                obj = {
+                    lng: item.longitude, lat: item.latitude
+                }
+            }
+
             this.$store.commit('CLEAR_ALL', null)
 
             var imgArr = item.bgImg.split(',')
             this.$store.commit('SET_POPUPBGURL', imgArr[0])
             this.$store.commit('SET_POPUPQRURL', item.QRImg)
 
-            this.$store.commit('SET_POINTPOSITION', [
-                Number(item.longitude),
-                Number(item.latitude),
-                Number(item.alt),
-                Number(item.heading),
-                Number(item.pitch),
-                Number(item.roll)
-            ])
             this.$store.commit('SET_STATENAME', item.navTitle)
             this.$store.commit('SET_SITENAME', item.address)
             this.$store.commit('SET_TELEPHONE', item.telephone)
@@ -156,29 +185,73 @@
                 this.$store.commit('SET_MONITORURL', item.videourl)
             }
 
-            this.newPopup(item)
-            global.viewer.flyToPosition(
-                new global.DC.Position(
-                    Number(item.longitude),
-                    Number(item.latitude),
-                    300,
+            this.newPopup(item, obj)
+
+            if (this.twoOrThree == '三 维') {
+                this.$store.commit('SET_POINTPOSITION', [
+                    Number(obj.lng),
+                    Number(obj.lat),
+                    Number(item.alt),
                     Number(item.heading),
                     Number(item.pitch),
                     Number(item.roll)
-                ),
-                function () { },
-                3
-            )
-        },
-
-        newPopup (item) {
-            const position = global.DC.Transform.transformWGS84ToCartesian(
-                new global.DC.Position(
+                ])
+                global.viewer.flyToPosition(
+                    new global.DC.Position(
+                        Number(obj.lng),
+                        Number(obj.lat),
+                        300,
+                        Number(item.heading),
+                        Number(item.pitch),
+                        Number(item.roll)
+                    ),
+                    function () { },
+                    3
+                )
+            } else {
+                this.$store.commit('SET_POINTPOSITION', [
                     Number(item.longitude),
                     Number(item.latitude),
-                    Number(item.alt)
+                    Number(50),
+                    Number(item.heading),
+                    Number(item.pitch),
+                    Number(item.roll)
+                ])
+                global.viewer.flyToPosition(
+                    new global.DC.Position(
+                        Number(item.longitude),
+                        Number(item.latitude),
+                        300,
+                        Number(item.heading),
+                        Number(item.pitch),
+                        Number(item.roll)
+                    ),
+                    function () { },
+                    3
                 )
-            )
+            }
+        },
+
+        newPopup (item, obj) {
+            let position
+            if (this.twoOrThree == '三 维') {
+                position = global.DC.Transform.transformWGS84ToCartesian(
+                    new global.DC.Position(
+                        Number(obj.lng),
+                        Number(obj.lat),
+                        Number(item.alt)
+                    )
+                )
+            } else {
+                position = global.DC.Transform.transformWGS84ToCartesian(
+                    new global.DC.Position(
+                        Number(item.longitude),
+                        Number(item.latitude),
+                        Number(50)
+                    )
+                )
+            }
+
             // eslint-disable-next-line no-unused-vars
             var popup = new global.DC.DivForms(global.viewer, {
                 domId: 'divFormsDomBox',
@@ -206,15 +279,30 @@
             this.$store.commit('SET_MONITORPOPUP', false)
             this.removeLayer()
         },
+
         flickerStart (param, name) {
             const layerIcon = currentOrgLayer.getOverlaysByAttr('name', name)
 
             currentOrgLayer.removeOverlay(layerIcon[0])
 
             let divIcon = null
+
+            let obj = {}
+
+            if (param.x && param.x != '') {
+                const position = this.coordinate(param.x)
+                obj = {
+                    lng: position.lng, lat: position.lat
+                }
+            } else {
+                obj = {
+                    lng: param.longitude, lat: param.latitude
+                }
+            }
+
             if (this.twoOrThree == '三 维') {
                 divIcon = new global.DC.DivIcon(
-                    new global.DC.Position(Number(param.longitude), Number(param.latitude), 0),
+                    new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
                     `
                                 <div class="tag-entitys-box layer-entity-animation">
                                     <div class="tag-content">
@@ -228,7 +316,7 @@
                 )
             } else {
                 divIcon = new global.DC.DivIcon(
-                    new global.DC.Position(Number(param.longitude), Number(param.latitude), 150),
+                    new global.DC.Position(Number(param.longitude), Number(param.latitude), 50),
                     `
                                 <div class="tag-entitys-box layer-entity-animation">
                                     <div class="tag-content">
@@ -246,15 +334,29 @@
 
             currentOrgLayer.addOverlay(divIcon)
         },
+
         flickerEnd (param, name) {
             const layerIcon = currentOrgLayer.getOverlaysByAttr('name', name)
 
             currentOrgLayer.removeOverlay(layerIcon[0])
 
             let divIcon = null
+
+            let obj = {}
+
+            if (param.x && param.x != '') {
+                const position = this.coordinate(param.x)
+                obj = {
+                    lng: position.lng, lat: position.lat
+                }
+            } else {
+                obj = {
+                    lng: param.longitude, lat: param.latitude
+                }
+            }
             if (this.twoOrThree == '三 维') {
                 divIcon = new global.DC.DivIcon(
-                    new global.DC.Position(Number(param.longitude), Number(param.latitude), 0),
+                    new global.DC.Position(Number(obj.lng), Number(obj.lat), 0),
                     `
                                 <div class="tag-entitys-box">
                                     <div class="tag-content">
@@ -268,7 +370,7 @@
                 )
             } else {
                 divIcon = new global.DC.DivIcon(
-                    new global.DC.Position(Number(param.longitude), Number(param.latitude), 150),
+                    new global.DC.Position(Number(param.longitude), Number(param.latitude), 50),
                     `
                                 <div class="tag-entitys-box">
                                     <div class="tag-content">

--
Gitblit v1.9.3