| | |
| | | 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, |
| | |
| | | content: content, |
| | | offset: [-35, 0], |
| | | position: 'BM', |
| | | minZoom: 15 |
| | | minZoom: 10 |
| | | } |
| | | } |
| | | ], |
| | |
| | | } |
| | | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | export default { |
| | | /** |
| | | * 清空扇形和文本标记 |
| | | */ |
| | | clearSector() { |
| | | var list = []; |
| | | for (const iterator of _sectorViews) { |
| | |
| | | } |
| | | this.clearSectorMesh(); |
| | | }, |
| | | /** |
| | | * 只清空扇形 |
| | | */ |
| | | clearSectorMesh() { |
| | | if (_sector) { |
| | | object3Dlayer.remove(_sector); |
| | | } |
| | | }, |
| | | /** |
| | | * 绘制扇形 |
| | | * @param {FactorDatas} fDatas |
| | | * @param {number} i |
| | | * @returns 数据坐标点和扇形最大半径 |
| | | */ |
| | | drawSector(fDatas, i) { |
| | | if (_sector != undefined) { |
| | | this.clearSector(); |
| | |
| | | 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 } = |