From 42f42dc88214f283b43c422f37e10ab45c5c5578 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期三, 12 三月 2025 17:32:13 +0800 Subject: [PATCH] 1. 新增绘图模式的切换 2. 新增行政区划的切换展示 --- src/model/Legend.js | 134 ++++++++++++++++---------------------------- 1 files changed, 50 insertions(+), 84 deletions(-) diff --git a/src/model/Legend.js b/src/model/Legend.js index 054ad4b..9dfbcc4 100644 --- a/src/model/Legend.js +++ b/src/model/Legend.js @@ -8,6 +8,7 @@ //鍚勭洃娴嬪洜瀛愭暟鎹垎绾э紙鏍囧噯锛� _legend_r: { + NO: [0, 100, 200, 700, 1200, 2340], NO2: [0, 100, 200, 700, 1200, 2340], CO: [0, 5, 10, 35, 60, 90], H2S: [0, 150, 500, 650, 800, 1600], @@ -25,6 +26,14 @@ //鍚勭洃娴嬪洜瀛愭暟鎹垎绾э紙鏍囧噯锛夊搴旈鑹� _legend_c: { + NO: [ + [0, 0.89, 0, 0.75], + [1, 1, 0, 0.75], + [1, 0.49, 0, 0.75], + [1, 0, 0, 0.75], + [0.6, 0, 0.3, 0.75], + [0.49, 0, 0.14, 0.75] + ], NO2: [ [0, 0.89, 0, 0.75], [1, 1, 0, 0.75], @@ -133,13 +142,21 @@ ] }, + // _custom: [ + // [0.05, 0.9, 0.03, 0.75], + // [0.3, 0.65, 0.02, 0.75], + // [0.87, 0.92, 0.03, 0.75], + // [0.8, 0.67, 0.04, 0.75], + // [0.92, 0.28, 0.07, 0.75], + // [0.6, 0.05, 0.05, 0.75] + // ], _custom: [ - [0.05, 0.9, 0.03, 0.75], - [0.3, 0.65, 0.02, 0.75], - [0.87, 0.92, 0.03, 0.75], - [0.8, 0.67, 0.04, 0.75], - [0.92, 0.28, 0.07, 0.75], - [0.6, 0.05, 0.05, 0.75] + [0, 0.89, 0, 0.75], + [1, 1, 0, 0.75], + [1, 0.49, 0, 0.75], + [1, 0, 0, 0.75], + [0.6, 0, 0.3, 0.75], + [0.49, 0, 0.14, 0.75] ], getStandardRange: function (name) { @@ -172,23 +189,45 @@ }, /** + * 鑾峰彇褰撳墠棰滆壊涓婁竴涓瓑绾х殑棰滆壊 + * @param {*} name + * @param {*} type + * @param {*} color + */ + getPreviousColor(name, type, color) { + let colors; + if (type == this.S_TYPE) { + colors = this._legend_c[name]; + } else { + colors = this._custom; + } + if (colors == undefined) { + colors = this._legend_c['PM25']; + } + let index = colors.indexOf(color); + index--; + if (index < 0) index = 0; + return colors[index]; + }, + + /** * 鑾峰彇鐩戞祴鍥犲瓙褰撳墠娴撳害瀵瑰簲鐨勯鑹� * @param name 鐩戞祴鍥犲瓙鍚嶇О * @param data 鐩戞祴鍥犲瓙娴撳害 */ getStandardColor: function (name, data) { - var range = this._legend_r[name]; - var colors = this._legend_c[name]; + let range = this._legend_r[name]; + let colors = this._legend_c[name]; if (range == undefined) { range = this._legend_r['PM25']; colors = this._legend_c['PM25']; } // return colors[0] - var selected = undefined; + let selected = undefined; for (let i = 0; i < range.length; i++) { const d = range[i]; - var d1 = d; + let d1 = d; if (name == 'CO') { d1 *= 1000; } @@ -210,84 +249,11 @@ getCustomColor: function (data, min, max) { var per = (max - min) / this._custom.length; - var i = parseInt(data / per); + var i = parseInt((data - min) / per); if (i >= this._custom.length) { i = this._custom.length - 1; } return this._custom[i]; - }, - - /** - * 鑾峰彇鍒嗘瀽鍥句緥 - */ - refreshLegend: function (eId, name, animation, type, min, max) { - var legend = $('#' + eId); - legend.empty(); - - var r = this._legend_r[name]; - var c = this._legend_c[name]; - // 娌℃湁鎵惧埌鏍囧噯鍥句緥鐨勫洜瀛愶紝榛樿浣跨敤鑷畾涔夎寖鍥村浘渚� - if (r == undefined) { - type = this.C_TYPE; - } - var range = []; - if (type != this.S_TYPE && min != undefined && max != undefined) { - var count = this._custom.length; - var per = (max - min) / count; - for (let i = 0; i < count; i++) { - range.push([(min + per * i).toFixed(1), this._custom[i]]); - } - } else { - for (let i = 0; i < r.length; i++) { - range.push([r[i], c[i]]); - } - } - - for (let i = 0; i < range.length; i++) { - const r = range[i]; - const nextR = range[i + 1]; - var div1 = $('<div></div>'); - div1.addClass('flexbox align-items margin-top'); - var div2 = $('<div></div>'); - div2.addClass('rectangle'); - - var color = r[1]; - var bgcolor = - 'rgba(' + - color[0] * 255 + - ', ' + - color[1] * 255 + - ', ' + - color[2] * 255 + - ', ' + - color[3] + - ')'; - div2.css('background-color', bgcolor); - var div3 = $('<div></div>'); - var d; - if (nextR != undefined) { - d = r[0] + ' ~' + nextR[0] + ' ' + Util.factorUnit2[name]; - } else { - d = - ' > ' + - r[0] + - ' ' + - Util.factorUnit2[name]; - } - div3.append(d); - div1.append(div2); - div1.append(div3); - legend.append(div1); - } - - if (animation == false) { - return; - } - legend.hide('fast', function () { - setTimeout(() => { - legend.show('fast'); - }, 500); - }); } }; -- Gitblit v1.9.3