From ff82e86becbd200adabd2ce56fba1f6b3c6c37e1 Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期一, 23 六月 2025 23:10:49 +0800
Subject: [PATCH] 2025.6.23

---
 src/utils/map/marks.js |   52 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/src/utils/map/marks.js b/src/utils/map/marks.js
index 8882fea..548e513 100644
--- a/src/utils/map/marks.js
+++ b/src/utils/map/marks.js
@@ -3,8 +3,10 @@
  */
 
 import { map, AMap } from './index'
+import util from './util'
 
 var _massMarks = undefined
+var _labelMarks = undefined
 
 export default {
   /**
@@ -70,12 +72,16 @@
     map.add(massMarks)
   },
 
-  createLabelMarks(img, dataList) {
+  createLabelMarks(img, dataList, onClick) {
+    if (_labelMarks) {
+      map.remove(_labelMarks)
+      _labelMarks = undefined
+    }
     const layer = new AMap.LabelsLayer({
       zooms: [3, 20],
       zIndex: 1000,
       // 寮�鍚爣娉ㄩ伩璁╋紝榛樿涓哄紑鍚紝v1.4.15 鏂板灞炴��
-      collision: true,
+      collision: false,
       // 寮�鍚爣娉ㄦ贰鍏ュ姩鐢伙紝榛樿涓哄紑鍚紝v1.4.15 鏂板灞炴��
       animation: true
     })
@@ -96,36 +102,62 @@
           image: img,
           // clipOrigin: [14, 92],
           // clipSize: [50, 68],
-          size: [30, 30],
+          size: [20, 20],
           anchor: 'bottom-center',
           angel: 0,
           retina: true
         },
         text: {
-          content: data.sceneName,
+          // content: data.sceneName,
           direction: 'top',
           offset: [0, -5],
           style: {
-            fontSize: 16,
-            fontWeight: 'normal',
+            fontSize: 12,
+            // fontWeight: 'normal',
             fillColor: '#fff',
-            strokeColor: '#333',
-            strokeWidth: 0,
-            backgroundColor: '#122b54a9'
+            // strokeColor: '#333',
+            // strokeWidth: 0,
+            backgroundColor: '#14428b'
           }
         }
       }
       curData.extData = {
-        index: i
+        data: data
       }
 
       var labelMarker = new AMap.LabelMarker(curData)
+      labelMarker.on('click', (event) => {
+        console.log(labelMarker.getExtData())
+        console.log(event)
+        util.setFitView([event.target])
+        // util.setZoomSmall()
+        // util.setCenter(event.lnglat)
+        // 鑷畾涔夌偣鍑讳簨浠�
+        if (typeof onClick === 'function') {
+          onClick(event.data.data.extData.data)
+        }
+      })
 
       // markers.push(labelMarker);
 
       layer.add(labelMarker)
     }
 
+    _labelMarks = layer
     return layer
+  },
+
+  drawMarker(title, lnglat, img) {
+    const marker = new AMap.Marker({
+      position: new AMap.LngLat(lnglat[0], lnglat[1]), // 缁忕含搴﹀璞★紝涔熷彲浠ユ槸缁忕含搴︽瀯鎴愮殑涓�缁存暟缁刐116.39, 39.9]
+      title: title,
+      // offset: new AMap.Pixel(-13, -12),
+      // anchor: 'center',
+      icon: new AMap.Icon({
+        image: img,
+        imageSize: [30, 30]
+      })
+    })
+    map.add(marker)
   }
 }

--
Gitblit v1.9.3