From aa75a9d46ee325f0a92e42f733aabb1f92103aeb Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期五, 28 三月 2025 17:44:29 +0800 Subject: [PATCH] 走航融合模块完成 --- src/utils/map/grid.js | 79 ++++++++++++++++++++++++++++++--------- 1 files changed, 60 insertions(+), 19 deletions(-) diff --git a/src/utils/map/grid.js b/src/utils/map/grid.js index 235b390..dba3ced 100644 --- a/src/utils/map/grid.js +++ b/src/utils/map/grid.js @@ -4,6 +4,7 @@ import { map } from './index_old'; import calculate from './calculate'; import { Legend } from '@/model/Legend'; +import { getGridDataDetailFactorValue } from '@/model/GridDataDetail'; import { getHexColor, getColorBetweenTwoColors } from '../color'; /** @@ -80,11 +81,7 @@ }); } -/** - * 鏂囨湰鏍囪 - * 鍙慨鏀筽osition - */ -function textMaker({ position, text, anchor, type, color }) { +function textMakerStyle({ type, color }) { let style = {}; if (type == 'data') { style = { @@ -111,6 +108,15 @@ 'margin-bottom': '4px' }; } + return style; +} + +/** + * 鏂囨湰鏍囪 + * 鍙慨鏀筽osition + */ +function textMaker({ position, text, anchor, type, color }) { + let style = textMakerStyle({ type, color }); // eslint-disable-next-line no-undef return new AMap.Text({ text: text, @@ -280,11 +286,19 @@ return gridViews; }, - drawGridText({ points, textViews, anchor, type, isCustomColor, useColor }) { + drawGridText({ + points, + textViews, + anchor, + type, + isCustomColor, + useColor, + factorName = 'PM25' + }) { let colorList = []; if (useColor) { colorList = calGridColor({ - factorName: 'PM25', + factorName, data: points.map((p) => p.data), isCustomColor: isCustomColor }); @@ -305,6 +319,33 @@ }); // map.add(_textViews); return { textViews: _textViews }; + }, + + changeGridText({ + points, + textViews, + type, + isCustomColor, + useColor, + factorName = 'PM25' + }) { + let colorList = []; + if (useColor) { + colorList = calGridColor({ + factorName, + data: points.map((p) => p.data), + isCustomColor: isCustomColor + }); + } + if (textViews) { + textViews.forEach((t, i) => { + t.setText(points[i].data); + t.setStyle( + textMakerStyle({ type, color: useColor ? colorList[i] : 'white' }) + ); + }); + } + return { textViews }; }, drawGridTextLabel(points, textViews, labelsLayer, direction) { @@ -359,11 +400,11 @@ const res = []; // 閬嶅巻鍗槦閬ユ祴鏁版嵁鏁扮粍 gridDataDetail.forEach((d, i) => { - if (d.pm25) { + const data = getGridDataDetailFactorValue(d, factorName); + if (data) { const grid = gridViews[i]; // 鏍规嵁閬ユ祴鏁版嵁璁$畻缃戞牸棰滆壊 - const data = d.pm25; const { color, nextColor, range, nextRange } = Legend.getStandardColorAndNext(factorName, data); const ratio = (data - range) / (nextRange - range); @@ -401,26 +442,26 @@ return res; }, - drawGridColorCustom(gridViews, gridDataDetail) { - + drawGridColorCustom(gridViews, gridDataDetail, factorName) { var max, min; gridDataDetail.forEach((t) => { - if (!t.pm25) return; - if (!max || t.pm25 > max) { - max = t.pm25; + const data = getGridDataDetailFactorValue(t, factorName); + if (!data) return; + if (!max || data > max) { + max = data; } - if (!min || t.pm25 < min) { - min = t.pm25; + if (!min || data < min) { + min = data; } }); const res = []; // 閬嶅巻鍗槦閬ユ祴鏁版嵁鏁扮粍 gridDataDetail.forEach((d, i) => { - if (d.pm25) { + const data = getGridDataDetailFactorValue(d, factorName); + if (data) { const grid = gridViews[i]; // 鏍规嵁閬ユ祴鏁版嵁璁$畻缃戞牸棰滆壊 - const data = d.pm25; const { color, nextColor, range, nextRange } = Legend.getCustomColorAndNext(data, min, max); const ratio = (data - range) / (nextRange - range); @@ -431,7 +472,7 @@ ratio ); grid.setOptions({ - fillColor: _color, //澶氳竟褰㈠~鍏呴鑹� + fillColor: _color //澶氳竟褰㈠~鍏呴鑹� // fillOpacity: style.opacity ? style.opacity : color[3] == 0 ? 0 : 1 }); -- Gitblit v1.9.3