import calculate from '@/utils/map/calculate'; import gridMapUtil from '@/utils/map/grid'; import { map } from '@/utils/map/index_old'; function clearAll(mapViews) { if (mapViews) { if (typeof mapViews.textViews === 'object') { map.remove(mapViews.textViews); } if (typeof mapViews.gridViews === 'object') { map.remove(mapViews.gridViews); } } } function clearText(mapViews) { if (mapViews) { if (typeof mapViews.dataTxt === 'object') { map.remove(mapViews.dataTxt); } if (typeof mapViews.dataLayer === 'object') { map.remove(mapViews.dataLayer); } if (typeof mapViews.rankTxt === 'object') { map.remove(mapViews.rankTxt); } if (typeof mapViews.rankLayer === 'object') { map.remove(mapViews.rankLayer); } } } // 绘制网格线 function drawPolyline(gridInfo) { // 绘制网格 const points = gridInfo.map((v) => { return calculate.wgs84_To_Gcj02(v.longitude, v.latitude); // return [v.longitude, v.latitude]; }); // const gridPoints = gridMapUtil.parseGridPoint(points); // console.log('gridPoints:', gridPoints); const gridPoints = gridInfo.map((v) => { return [ calculate.wgs84_To_Gcj02(v.point1Lon, v.point1Lat), calculate.wgs84_To_Gcj02(v.point2Lon, v.point2Lat), calculate.wgs84_To_Gcj02(v.point3Lon, v.point3Lat), calculate.wgs84_To_Gcj02(v.point4Lon, v.point4Lat) // [v.point1Lon, v.point1Lat], // [v.point2Lon, v.point2Lat], // [v.point3Lon, v.point3Lat], // [v.point4Lon, v.point4Lat] ]; }); const gridViews = gridMapUtil.drawPolylines(gridPoints); return { gridViews, gridPoints, points }; } // 绘制监测数据值 function drawDataText(points, gridData, textViews, labelsLayer) { const data = gridData.map((v, i) => { return { lnglat_GD: points[i], // data: v.pm25 ? (v.pm25 + 'μg/m³') : '' data: v.pm25 ? v.pm25 : '' }; }); // return gridMapUtil.drawGridTextLabel(data, textViews, labelsLayer, 'bottom'); return gridMapUtil.drawGridText(data, textViews, 'top-center', 'data'); } // 绘制监测数据排名文本 function drawRankText(points, gridData, textViews, labelsLayer) { const data = gridData.map((v, i) => { return { lnglat_GD: points[i], // data: v.pm25 ? ('排名: ' + v.rank) : '' data: v.pm25 ? v.rank : '' }; }); // return gridMapUtil.drawGridTextLabel(data, textViews, labelsLayer, 'top'); return gridMapUtil.drawGridText(data, textViews, 'bottom-center', 'rank'); } // 绘制监测数据值对应网格颜色 function drawColor(gridViews, gridData, customColor) { const pm25Data = gridData.map((v) => { return v.pm25; }); if (customColor) { gridMapUtil.drawGridColorCustom(gridViews, pm25Data); } else { gridMapUtil.drawGridColor(gridViews, pm25Data, 'PM25'); } } export default { drawPolyline, drawDataText, drawRankText, drawColor, clearText, clearAll };