From 4a836815f12e8ba717702cc8ed431e1b4f96134c Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 25 四月 2025 13:55:34 +0800
Subject: [PATCH] 新增内部线索相关管理逻辑

---
 src/components/map/baseMapUtil.js |   63 +++++++++++++++++++++++--------
 1 files changed, 46 insertions(+), 17 deletions(-)

diff --git a/src/components/map/baseMapUtil.js b/src/components/map/baseMapUtil.js
index 735b58e..ce3ad05 100644
--- a/src/components/map/baseMapUtil.js
+++ b/src/components/map/baseMapUtil.js
@@ -80,21 +80,31 @@
     });
   },
 
+  addMarker(lnglat) {
+    const marker = new AMap.Marker({
+      position: lnglat
+    });
+    map.add(marker);
+    this.setCenter(lnglat);
+    return marker;
+  },
+
+  setCenter(lnglat) {
+    map.setCenter(lnglat);
+  },
+
   /**
    * 缂╂斁鍦板浘鍒板悎閫傜殑瑙嗛噹绾у埆
    */
-  setFitView(overlays, type = 0) {
+  setFitView(...overlays) {
     const _overlays = toRaw(overlays);
-    switch (type) {
-      case 0:
-        map.setFitView([_overlays]);
-        break;
-      case 1:
-        map.setFitView(_overlays);
-        break;
-      default:
-        map.setFitView([_overlays]);
-        break;
+    map.setFitView(_overlays, true, [60, 60, 500, 60], 14.5);
+  },
+
+  addView(overlays) {
+    if (overlays) {
+      const _overlays = toRaw(overlays);
+      map.add(_overlays);
     }
   },
 
@@ -102,8 +112,10 @@
    * 绉婚櫎瑕嗙洊鐗�
    */
   removeView(overlays) {
-    const _overlays = toRaw(overlays);
-    map.remove(_overlays);
+    if (overlays) {
+      const _overlays = toRaw(overlays);
+      map.remove(_overlays);
+    }
   },
 
   /**
@@ -117,8 +129,10 @@
   /**
    * 楂樺痉鍦板浘鍧愭爣杞珿PS鍧愭爣绠楁硶
    */
-  gcj02towgs84(lng, lat) {
+  gcj02towgs84(_lng, _lat) {
     // lat = +latlng = +lng
+    const lng = parseFloat(_lng)
+    const lat = parseFloat(_lat)
     if (out_of_china(lng, lat)) {
       return [lng, lat];
     } else {
@@ -133,8 +147,10 @@
         (((a * (1 - ee)) / (magic * sqrtmagic)) * PI);
       dlng =
         (dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI);
-      let mglat = Math.round((lat * 2 - lat - dlat) * 1000000) / 1000000;
-      let mglng = Math.round((lng * 2 - lng - dlng) * 1000000) / 1000000;
+      let mglat =
+        Math.round((lat * 2 - lat - dlat) * 1000000) / 1000000;
+      let mglng =
+        Math.round((lng * 2 - lng - dlng) * 1000000) / 1000000;
       return [mglng, mglat];
     }
   },
@@ -144,8 +160,10 @@
    * @param lat
    * @returns {*[]}
    */
-  wgs84togcj02(lng, lat) {
+  wgs84togcj02(_lng, _lat) {
     // lat = +latlng = +lng
+    const lng = parseFloat(_lng)
+    const lat = parseFloat(_lat)
     if (out_of_china(lng, lat)) {
       return [lng, lat];
     } else {
@@ -164,5 +182,16 @@
       let mglng = Math.round((lng + dlng) * 1000000) / 1000000;
       return [mglng, mglat];
     }
+  },
+  gpsConvert(gps) {
+    return new Promise((reject) => {
+      // 鍙傛暟璇存槑锛氶渶瑕佽浆鎹㈢殑鍧愭爣锛岄渶瑕佽浆鎹㈢殑鍧愭爣绫诲瀷锛岃浆鎹㈡垚鍔熷悗鐨勫洖璋冨嚱鏁�
+      AMap.convertFrom(gps, 'baidu', function (status, result) {
+        if (result.info === 'ok') {
+          var lnglats = result.locations; // 杞崲鍚庣殑楂樺痉鍧愭爣 Array.<LngLat>
+          reject(lnglats[0]);
+        }
+      });
+    });
   }
 };

--
Gitblit v1.9.3