From 660021a28de9b84b4362c171fdbbf89587f0c5af Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 13 二月 2025 17:30:50 +0800
Subject: [PATCH] 1. 修改部分bug 2. 新增2D路线轨迹绘制

---
 src/utils/map/marks.js |   83 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 76 insertions(+), 7 deletions(-)

diff --git a/src/utils/map/marks.js b/src/utils/map/marks.js
index 0d3c21d..03ebbc5 100644
--- a/src/utils/map/marks.js
+++ b/src/utils/map/marks.js
@@ -3,8 +3,6 @@
  */
 
 import { map } from './index_old';
-import sector from './sector';
-import { DialogUtil } from './dialog';
 import { useToolboxStore } from '@/stores/toolbox';
 
 const toolboxStore = useToolboxStore();
@@ -21,16 +19,13 @@
     if (!toolboxStore.dataMarkerStatus) {
       return;
     }
-    if (_massMarks) {
-      map.remove(_massMarks);
-      _massMarks = undefined;
-    }
+    this.clearMassMarks();
     const lnglats = fDatas.lnglats_GD;
     var data = [];
     for (let i = 0; i < lnglats.length; i++) {
       data.push({
         lnglat: lnglats[i], //鐐规爣璁颁綅缃�
-        name: `${fDatas.times[i]}<br/>${_factor.factorName}: ${_factor.datas[i].factorData} mg/m鲁`,
+        name: `${fDatas.times[i]}<br/>${_factor.factorName}: ${_factor.datas[i].factorData} 渭g/m鲁`,
         id: i
       });
     }
@@ -76,5 +71,79 @@
     });
     _massMarks = massMarks;
     map.add(massMarks);
+  },
+  clearMassMarks() {
+    if (_massMarks) {
+      map.remove(_massMarks);
+      _massMarks = undefined;
+    }
+  },
+
+  /**
+   * 鍒涘缓鏍囪鐐�
+   * @param {string | Array} img 鍥炬爣鎴栧浘鏍囨暟缁�
+   * @param {Array} dataList 鐩戞祴鏁版嵁
+   * @param {boolean} collision 鏍囨敞閬胯
+   * @returns
+   */
+  createLabelMarks(img, dataList, collision = true) {
+    // eslint-disable-next-line no-undef
+    const layer = new AMap.LabelsLayer({
+      zooms: [3, 20],
+      zIndex: 1000,
+      // 寮�鍚爣娉ㄩ伩璁╋紝榛樿涓哄紑鍚紝v1.4.15 鏂板灞炴��
+      collision: collision,
+      // 寮�鍚爣娉ㄦ贰鍏ュ姩鐢伙紝榛樿涓哄紑鍚紝v1.4.15 鏂板灞炴��
+      animation: true
+    });
+
+    map.add(layer);
+
+    // var markers = [];
+    for (var i = 0; i < dataList.length; i++) {
+      const data = dataList[i];
+      var curData = {
+        name: data.name,
+        position: [data.longitude, data.latitude],
+        zooms: [10, 20],
+        opacity: 1,
+        zIndex: 10,
+        icon: {
+          type: 'image',
+          image: typeof img === 'string' ? img : img[i],
+          // clipOrigin: [14, 92],
+          // clipSize: [50, 68],
+          size: [30, 30],
+          anchor: 'bottom-center',
+          angel: 0,
+          retina: true
+        },
+        text: {
+          content: data.name,
+          direction: 'top',
+          offset: [0, -5],
+          style: {
+            fontSize: 16,
+            fontWeight: 'normal',
+            fillColor: '#fff',
+            strokeColor: '#333',
+            strokeWidth: 0,
+            backgroundColor: '#122b54a9'
+          }
+        }
+      };
+      curData.extData = {
+        index: i
+      };
+
+      // eslint-disable-next-line no-undef
+      var labelMarker = new AMap.LabelMarker(curData);
+
+      // markers.push(labelMarker);
+
+      layer.add(labelMarker);
+    }
+
+    return layer;
   }
 };

--
Gitblit v1.9.3