From 264880703c677d63b7e35b5eb085e6bc3214e3ed Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期三, 17 七月 2024 18:29:31 +0800 Subject: [PATCH] 2024.7.17 --- src/utils/map/sector.js | 42 ++++++++++++++++++++++++++++++++---------- 1 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/utils/map/sector.js b/src/utils/map/sector.js index 0e3ced6..de4a8b5 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; + } // 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); @@ -211,6 +215,9 @@ } export default { + /** + * 娓呯┖鎵囧舰鍜屾枃鏈爣璁� + */ clearSector() { var list = []; for (const iterator of _sectorViews) { @@ -225,11 +232,20 @@ } this.clearSectorMesh(); }, + /** + * 鍙竻绌烘墖褰� + */ clearSectorMesh() { if (_sector) { object3Dlayer.remove(_sector); } }, + /** + * 缁樺埗鎵囧舰 + * @param {FactorDatas} fDatas + * @param {number} i + * @returns 鏁版嵁鍧愭爣鐐瑰拰鎵囧舰鏈�澶у崐寰� + */ drawSector(fDatas, i) { if (_sector != undefined) { this.clearSector(); @@ -238,8 +254,14 @@ sectorParams(fDatas, i); drawSectorMesh(sDeg, eDeg, lnglat, distance, distance2); drawElasticMarker(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 } = -- Gitblit v1.9.3