From 6b6eff08baa3d052b66fd2e68f1ac0d8495f6f8a Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 29 八月 2024 17:35:33 +0800
Subject: [PATCH] 修改历史数据获取逻辑

---
 src/utils/map/sector.js |   59 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 42 insertions(+), 17 deletions(-)

diff --git a/src/utils/map/sector.js b/src/utils/map/sector.js
index 0e3ced6..32a88e6 100644
--- a/src/utils/map/sector.js
+++ b/src/utils/map/sector.js
@@ -1,6 +1,7 @@
 import { map, object3Dlayer } from './index_old';
 import calculate from './calculate';
 import imgLocation from '@/assets/mipmap/location.png';
+import { FactorDatas } from '@/model/FactorDatas';
 
 var _defaultDeg = 30,
   _sector = undefined,
@@ -76,7 +77,7 @@
           content: content,
           offset: [-35, 0],
           position: 'BM',
-          minZoom: 15
+          minZoom: 10
         }
       }
     ],
@@ -107,6 +108,9 @@
 }
 
 function drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2) {
+  if (distance == 0 || distance2 == 0) {
+    return false;
+  }
   // eslint-disable-next-line no-undef
   var sector = new AMap.Object3D.Mesh();
   sector.transparent = true;
@@ -124,16 +128,16 @@
     var angle1 = sDeg + unitDeg * i;
     var angle2 = sDeg + unitDeg * (i + 1);
 
-    var l1 = calculate.getLatLon(lnglat, distance, angle1);
-    var l2 = calculate.getLatLon(lnglat, distance, angle2);
-    var l3 = calculate.getLatLon(lnglat, distance2, angle1);
-    var l4 = calculate.getLatLon(lnglat, distance2, angle2);
+    var p1 = calculate.getLatLon(lnglat, distance, angle1);
+    var p2 = calculate.getLatLon(lnglat, distance, angle2);
+    var p3 = calculate.getLatLon(lnglat, distance2, angle1);
+    var p4 = calculate.getLatLon(lnglat, distance2, angle2);
 
-    var coors = calculate.lngLatToGeodeticCoord([l1, l2, l3, l4]);
-    l1 = coors[0];
-    l2 = coors[1];
-    l3 = coors[2];
-    l4 = coors[3];
+    var coors = calculate.lngLatToGeodeticCoord([p1, p2, p3, p4]);
+    const l1 = coors[0];
+    const l2 = coors[1];
+    const l3 = coors[2];
+    const l4 = coors[3];
 
     // 鍐呮祴鎵囧舰
     geometry.vertices.push(p0.x, p0.y, 0);
@@ -163,6 +167,7 @@
   }
   object3Dlayer.add(sector);
   _sector = sector;
+  return true;
 }
 
 function drawTextMaker(list, list2, distance, distance2) {
@@ -211,6 +216,9 @@
 }
 
 export default {
+  /**
+   * 娓呯┖鎵囧舰鍜屾枃鏈爣璁�
+   */
   clearSector() {
     var list = [];
     for (const iterator of _sectorViews) {
@@ -225,26 +233,43 @@
     }
     this.clearSectorMesh();
   },
+  /**
+   * 鍙竻绌烘墖褰�
+   */
   clearSectorMesh() {
     if (_sector) {
       object3Dlayer.remove(_sector);
     }
   },
+  /**
+   * 缁樺埗鎵囧舰
+   * @param {FactorDatas} fDatas
+   * @param {number} i
+   * @returns 鏁版嵁鍧愭爣鐐瑰拰鎵囧舰鏈�澶у崐寰�
+   */
   drawSector(fDatas, i) {
-    if (_sector != undefined) {
-      this.clearSector();
-    }
+    this.clearSector();
     const { sDeg, eDeg, lnglat, distance, distance2, list, list2 } =
       sectorParams(fDatas, i);
-    drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2);
-    drawElasticMarker(list, list2, distance, distance2);
+    if (drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2)) {
+      // 褰撻閫熷ぇ浜�0缁樺埗浜嗘墖褰㈡椂锛屾墠缁樺埗瀵瑰簲鐨勮窛绂荤瓑鏂囨湰鏍囪
+      // drawElasticMarker(list, list2, distance, distance2);
+      drawTextMaker(list, list2, distance, distance2);
+    }
+    return { p: lnglat, r: distance };
   },
 
+  /**
+   * 缁樺埗杞ㄨ抗鍔ㄧ敾涓殑鎵囧舰
+   * @param {FactorDatas} fDatas
+   * @param {number} i
+   */
   drawSectorAna(fDatas, i) {
     this.clearSectorMesh();
     const { sDeg, eDeg, lnglat, distance, distance2, list, list2 } =
       sectorParams(fDatas, i);
-    drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2);
-    drawTextMaker(list, list2, distance, distance2);
+    if (drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2)) {
+      drawTextMaker(list, list2, distance, distance2);
+    }
   }
 };

--
Gitblit v1.9.3