| | |
| | | import { object3Dlayer } from '../map'; |
| | | import { map, object3Dlayer } from './index_old'; |
| | | |
| | | // 3d图形 |
| | | var _cylinder = undefined, |
| | | // 当前绘制的图形中的最小高度 |
| | | _minH = -1, |
| | | // 当前绘制的图形中的最大高度 |
| | | _maxH = -1; |
| | | |
| | | //监测数据 |
| | | var _factorDatas = { |
| | | lnglats: [], |
| | | heights: [], |
| | | type: '' |
| | | }, |
| | | //当前选中的监测因子数据 |
| | | _factor = {}, |
| | | _zoomFirst = true; |
| | | |
| | | function onMapZoom() { |
| | | // 首次地图缩放监听不执行(因为设定监听函数后会立即执行一次,可能官方函数有相关参数,后续待修改) |
| | | if (_zoomFirst) { |
| | | _zoomFirst = false; |
| | | return; |
| | | } |
| | | const fDatas = _factorDatas; |
| | | const factor = _factor; |
| | | // MapUtil._object3Dlayer.clear() |
| | | // MapUtil.drawMesh(f.lnglats, f.heights, f.type, false) |
| | | MapUtil.drawMesh2(fDatas, factor); |
| | | MapUtil.drawMarker(); |
| | | } |
| | | |
| | | export default { |
| | | /** |
| | | * 绘制3D走行路线图 |
| | | * @param fDatas 完整监测数据 |
| | | * @param factor 当前展示的监测因子的值value |
| | | * @param merge 是否和之前绘制的图形合并 |
| | | * @param setCenter 镜头是否自动移动至图形中心 |
| | | */ |
| | | drawRoadMap(fDatas, factor, merge, setCenter) { |
| | | const lnglats_GD = fDatas.lnglats_GD; |
| | | const heights = factor.heights; |
| | | |
| | | // 1.关闭地图缩放监听 |
| | | map.off('zoomend', this._onMapZoom); |
| | | |
| | | // 2.计算绘图高度的边界值 |
| | | if (merge != true) { |
| | | var minH = _minH < 0 ? heights[0] : _minH; |
| | | var maxH = _maxH < 0 ? heights[0] : _maxH; |
| | | for (let i = 0; i < heights.length; i++) { |
| | | const h = heights[i]; |
| | | minH = Math.min(minH, h); |
| | | maxH = Math.max(maxH, h); |
| | | } |
| | | _minH = minH; |
| | | _maxH = maxH; |
| | | } |
| | | |
| | | // 3.确定定位坐标点 |
| | | var center; |
| | | if (setCenter && lnglats_GD.length > 0) { |
| | | var p = lnglats_GD[0]; |
| | | for (let i = 0; i < lnglats_GD.length; i++) { |
| | | const e = lnglats_GD[i]; |
| | | if (e[0] != 0) { |
| | | p = e; |
| | | break; |
| | | } |
| | | } |
| | | center = new AMap.LngLat(...p); |
| | | } |
| | | |
| | | // 5.绘制3D图形 |
| | | drawMesh2(fDatas, factor, center, merge); |
| | | |
| | | // 缩放地图到合适的视野级别 |
| | | // map.setFitView() |
| | | |
| | | // 6.开启地图缩放监听 |
| | | if (lnglats_GD.length > 0) { |
| | | map.on('zoomend', this._onMapZoom); |
| | | } |
| | | } |
| | | }; |