From adcdf0d9f2e37b9719d63113d2ae1a9d698ef20e Mon Sep 17 00:00:00 2001
From: guanqb <18720758508@163.com>
Date: Mon, 07 Nov 2022 16:54:18 +0800
Subject: [PATCH] 热区效果添加

---
 src/views/activity/index.vue |   64 +++++++++++++++++++++++++-------
 1 files changed, 50 insertions(+), 14 deletions(-)

diff --git a/src/views/activity/index.vue b/src/views/activity/index.vue
index f7d40d5..e52765a 100644
--- a/src/views/activity/index.vue
+++ b/src/views/activity/index.vue
@@ -397,6 +397,10 @@
                         lat: 28.684435,
                         alt: 100,
                     }]
+                },
+                {
+                    id: 777,
+                    label: '热力图'
                 }]
             }],
             defaultProps: {
@@ -490,21 +494,49 @@
     updated () { },
 
     methods: {
+        generatePosition (num) {
+            let list = []
+            for (let i = 0; i < num; i++) {
+                let lng = 115.974 + Math.random() * 0.5
+                let lat = 28.628 + Math.random() * 0.5
+                list.push(new global.DC.Position(lng, lat))
+            }
+            return list
+        },
+
         treeCheckClick (e1, e2) {
-            this.$EventBus.$emit('mapClearLayer', {
-                layerName: 'activeLayer',
-                type: 'VectorLayer'
+            const that = this
+            this.$EventBus.$emit('mapRemoveLayer', {
+                layerName: 'activeHeatLayer',
+                type: 'HeatLayer'
             })
-            e2.checkedNodes.forEach(item => {
-                if (item.lng) {
-                    item.url = '/img/icon/position.png'
-                    this.$EventBus.$emit('layerPointAdd', {
-                        layerName: 'activeLayer',
-                        type: "billboard",
-                        params: item
-                    })
-                }
-            })
+            if (e1.label == '热力图' && e2.checkedKeys.some(item => {
+                return item == 777
+            })) {
+                this.$EventBus.$emit('layerPointAdd', {
+                    layerName: 'activeHeatLayer',
+                    type: "HeatPoint",
+                    layerType: 'HeatLayer',
+                    params: {
+                        positions: that.generatePosition(2000)
+                    }
+                })
+            } else {
+                this.$EventBus.$emit('mapClearLayer', {
+                    layerName: 'activeLayer',
+                    type: 'VectorLayer'
+                })
+                e2.checkedNodes.forEach(item => {
+                    if (item.lng) {
+                        item.url = '/img/icon/position.png'
+                        this.$EventBus.$emit('layerPointAdd', {
+                            layerName: 'activeLayer',
+                            type: "billboard",
+                            params: item
+                        })
+                    }
+                })
+            }
         },
 
         treeNodeClick () {
@@ -513,7 +545,7 @@
                 100
             )
             this.$EventBus.$emit('layerPolylineAdd', {
-                layerName: 'polylineLayer',
+                layerName: 'polylineLayer1',
                 positions: '116.025000, 28.686000, 116.025000, 28.678000,116.020000, 28.678000',
                 material: color,
                 width: 2
@@ -668,6 +700,10 @@
             layerName: 'polylineLayer',
             type: 'VectorLayer'
         })
+        this.$EventBus.$emit('mapRemoveLayer', {
+            layerName: 'activeHeatLayer',
+            type: 'HeatLayer'
+        })
 
         analyseLayer.clear()
 

--
Gitblit v1.9.3