当前位置: 首页 > news >正文

echarts画风向杆

1.安装echarts

2.引入echarts

4.获取数据,转换数据格式

windProfile.title.text = `${moment(time.searchTime[0], ‘YYYY-MM-DD HH:mm:ss’).format(

‘YYYY-MM-DD HH:mm’

)}-${moment(time.searchTime[1], ‘YYYY-MM-DD HH:mm:ss’).format(‘YYYY-MM-DD HH:mm’)}——水平风风羽图`

data.forEach(item => {

windProfile.xAxis.data.push(moment(item.time, ‘YYYY-MM-DD HH:mm:ss’).format(‘HH:mm’))

arr = item.fengKuoXianItems.filter(

i => heightRange.less * 1000 <= i.height && i.height <= heightRange.greater * 1000

)

arr.forEach(item1 => {

if (item1.direction && item1.speed) {

windProfile.series[0].data.push({

value: [

moment(item.time, ‘YYYY-MM-DD HH:mm:ss’).format(‘HH:mm’),

item1.height,

transformationSpeed(item1.speed),

item1.direction > 9999 ‘’ : getWindPower(item1.direction),

item1.speed > 9999 ‘’ : getWindSpeed(item1.speed),

item1.speed > 9999 ‘’ : item1.speed.toFixed(2)

],

label: {

rotate: -item1.direction,

color: `rgba(${getColor(colorData.value[0].stops, item1.speed).stop.join(‘,’)})`

}

})

}

})

})

1)转换字体根据风速转字体

const transformation = [

//风速转字体

[1, ‘m’, 0],

[3, ‘k’, 1],

[5, ‘1’, 2],

[7, ‘2’, 3],

[9, ‘3’, 4],

[11, ‘4’, 5],

[13, ‘5’, 6],

[15, ‘6’, 7],

[17, ‘7’, 8],

[19, ‘n’, 9],

[21, ‘8’, 10],

[23, ‘9’, 11],

[25, ‘:’, 12],

[27, ‘;’, 13],

[29, ‘<’, 14],

[31, ‘=’, 15],

[33, ‘>’, 16],

[35, ‘’, 17],

[37, ‘@’, 18],

[39, ‘A’, 19],

[41, ‘B’, 20],

[43, ‘C’, 21],

[45, ‘D’, 22],

[47, ‘E’, 23],

[49, ‘F’, 24],

[51, ‘G’, 25],

[53, ‘H’, 26],

[55, ‘I’, 27],

[57, ‘J’, 28],

[999, ‘K’, 28]

]

//根据风速转字体

const transformationSpeed = speed => {

for (let t = 0; t < transformation.length; t++) if (Number(speed) <= transformation[t][0]) return transformation[t][1]

return ‘0’

}

注意修改echarts里series的配置项

2)转换风向

const windPower = [

//风向

[11.25, ‘北风’],

[33.75, ‘东北风’],

[56.25, ‘东北风’],

[78.75, ‘东北风’],

[101.25, ‘东风’],

[123.75, ‘东南风’],

[146.25, ‘东南风’],

[168.75, ‘东南风’],

[191.25, ‘南风’],

[213.75, ‘西南风’],

[236.25, ‘西南风’],

[258.75, ‘西南风’],

[281.25, ‘西风’],

[303.75, ‘西北风’],

[326.25, ‘西北风’],

[348.75, ‘西北风’],

[1e3, ‘西北风’]

]

// 获取风向

const getWindPower = e => {

for (let t = 0; t < windPower.length; t++) if (e < windPower[t][0]) return windPower[t][1]

return ‘无风’

}

3)转换风速

const windSpeed = [

//风速

[0.2, 0],

[1.5, 1],

[3.3, 2],

[5.4, 3],

[7.9, 4],

[10.7, 5],

[13.8, 6],

[17.1, 7],

[20.7, 8],

[24.4, 9],

[28.4, 10],

[32.6, 11],

[36.9, 12],

[41.4, 13],

[46.1, 14],

[50.9, 15],

[56, 16],

[61.2, 17]

]

//获取风速

const getWindSpeed = e => {

for (let t = 0; t < windSpeed.length; t++) if (e < windSpeed[t][0]) return windSpeed[t][1].toFixed(2)

return ‘0’

}

4)转换风字体颜色

const colorData = ref([

{

stops: [

{ value: 0.2, stop: [176, 224, 248, 1] },

{ value: 2.6, stop: [144, 208, 248, 1] },

{ value: 3.4, stop: [120, 184, 248, 1] },

{ value: 5.5, stop: [80, 160, 240, 1] },

{ value: 8, stop: [60, 120, 220, 1] },

{ value: 10.8, stop: [40, 100, 200, 1] },

{ value: 13.9, stop: [0, 176, 8, 1] },

{ value: 17.2, stop: [248, 248, 0, 1] },

{ value: 20.8, stop: [248, 168, 0, 1] },

{ value: 24.5, stop: [248, 80, 0, 1] },

{ value: 28.5, stop: [248, 0, 0, 1] },

{ value: 32.7, stop: [248, 24, 80, 1] },

{ value: 37, stop: [240, 48, 152, 1] },

{ value: 46.2, stop: [232, 80, 232, 1] },

{ value: 51, stop: [224, 72, 72, 1] },

{ value: 56.1, stop: [200, 56, 56, 1] },

{ value: 61.3, stop: [160, 24, 32, 1] }

],

fieldName: ‘wind’

}

])

// 风字体颜色

const getColor = (e, speed) => {

let n = e[e.length - 1]

const i = e.find(e => {

if (speed <= e.value) return (n = e), n

})

return i && (n = i), n

}

欢迎补充,一起进步。

相关文章:

echarts画风向杆

1.安装echarts 2.引入echarts 4.获取数据&#xff0c;转换数据格式 windProfile.title.text ${moment(time.searchTime[0], ‘YYYY-MM-DD HH:mm:ss’).format( ‘YYYY-MM-DD HH:mm’ )}-${moment(time.searchTime[1], ‘YYYY-MM-DD HH:mm:ss’).format(‘YYYY-MM-DD HH:mm’)…...

【LeetCode每日一题】LeetCode 345.反转字符串中的元音字母

LeetCode 345.反转字符串中的元音字母 题目描述 给定一个字符串 s&#xff0c;你需要反转字符串中所有的元音字母&#xff0c;并返回新的字符串。 元音字母是 a, e, i, o, u&#xff0c;这些字母的大小写都会被考虑。 示例 1: 输入: s "hello" 输出: "holle…...

蓝桥杯练习生第四天

小蓝每天都锻炼身体。 正常情况下&#xff0c;小蓝每天跑 11 千米。如果某天是周一或者月初&#xff08;11 日&#xff09;&#xff0c;为了激励自己&#xff0c;小蓝要跑 22 千米。如果同时是周一或月初&#xff0c;小蓝也是跑 22 千米。 小蓝跑步已经坚持了很长时间&#x…...

cesium 常见的 entity 列表

Cesium 是一个用于创建3D地球和地图的开源JavaScript库。它允许开发者在Web浏览器中展示地理空间数据,并且支持多种类型的空间实体(entities)。 Entities是Cesium中用于表示地面上或空中的对象的一种高层次、易于使用的接口。它们可以用来表示点、线、多边形、模型等,并且可…...

Java旅程(五)Spring 框架与微服务架构 了解 JVM 内部原理和调优

在现代企业级应用中&#xff0c;Spring 框架和微服务架构已经成为主流技术&#xff0c;而 Java 虚拟机&#xff08;JVM&#xff09;的理解和调优对于保证应用的高性能和稳定性也至关重要。本篇博客将深入讲解 Spring 框架与微服务架构&#xff0c;并进一步探讨 JVM 内部原理和调…...

Niushop-master靶场漏洞

靶场搭建 将 niushop-master.zip 压缩包放到网站的根目录&#xff0c;解压后访问 浏览器访问 install.php &#xff0c;根据提示安装即可 1.SQL注入漏洞 随便选择一种商品分类&#xff0c;发现有参数&#xff0c;测试注入 测试闭合发现页面报错有sql注入 应该是环境的问题&am…...

35道面向初中级前端的基础面试题

新鲜出炉的8月前端面试题 跨域资源共享 CORS 阮一峰 3. JSONP 是什么&#xff1f; 这是我认为写得比较通俗易懂的一篇文章jsonp原理详解——终于搞清楚jsonp是啥了。 4. 事件绑定的方式 嵌入dom 按钮 直接绑定 btn.onclick function(){} 事件监听 btn.addEventList…...

MFC用List Control 和Picture控件实现界面切换效果

添加List Control 和Picture控件 添加 3个子窗体 把子窗体边框设置为None, 样式设为Child 声明 CListCtrl m_listPageForm;void ShowForm(int nIndex);void CreatFormList();void CMFCApplication3Dlg::DoDataExchange(CDataExchange* pDX) {CDialogEx::DoDataExchange(pDX);DD…...

1. 解决前端vue项目 vite打包内存溢出问题

探索问题原因&#xff1a; 项目开发时正常运行不影响&#xff0c;打包出现上图错误&#xff0c;意味着打包过程中消耗了太多的内存导致的。 解决方法&#xff1a; 在 package.json中的打包命令替换如下&#xff1a; 解决前&#xff1a; "build:dev": "vite…...

Springboot高并发乐观锁

Spring Boot分布式锁的主要缺点包括但不限于以下几点&#xff1a; 性能开销&#xff1a;使用分布式锁通常涉及到网络通信&#xff0c;这会引入额外的延迟和性能开销。例如&#xff0c;当使用Redis或Zookeeper实现分布式锁时&#xff0c;每次获取或释放锁都需要与这些服务进行交…...

【WPS安装】WPS编译错误总结:WPS编译失败+仅编译成功ungrib等

WPS编译错误总结&#xff1a;WPS编译失败仅编译成功ungrib等 WPS编译过程问题1&#xff1a;WPS编译失败错误1&#xff1a;gfortran: error: unrecognized command-line option ‘-convert’; did you mean ‘-fconvert’?解决方案 问题2&#xff1a;WPS编译三个exe文件只出现u…...

pytorch MoE(专家混合网络)的简单实现。

专家混合&#xff08;Mixture of Experts, MoE&#xff09;是一种深度学习模型架构&#xff0c;通常用于处理大规模数据和复杂任务。它通过将输入分配给多个专家网络&#xff08;即子模型&#xff09;&#xff0c;然后根据门控网络&#xff08;gating network&#xff09;的输出…...

虚拟机VMware的安装问题ip错误,虚拟网卡

要么没有虚拟网卡、有网卡远程连不上等 一般出现在win11 家庭版 1、是否IP错误 ip addr 2、 重置虚拟网卡 3、查看是否有虚拟网卡 4、如果以上检查都解决不了问题 如果你之前有vmware 后来卸载了&#xff0c;又重新安装&#xff0c;一般都会有问题 卸载重装vmware: 第一…...

Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门hello world输出【入门一】

开发环境搭建&#xff1a;Linux-Ubuntu下搭建ESP32的开发环境的步骤&#xff0c;使用乐鑫最新稳定版的esp-idf-CSDN博客 一、安装好开发环境后&#xff0c;在esp目录下再创建一个esp32的目录【用于编程测试demo】 二、进入esp32目录&#xff0c;打开终端【拷贝esp-idf的hello工…...

重温设计模式--命令模式

文章目录 命令模式的详细介绍C 代码示例C代码示例2 命令模式的详细介绍 定义与概念 命令模式属于行为型设计模式&#xff0c;它旨在将一个请求封装成一个对象&#xff0c;从而让你可以用不同的请求对客户端进行参数化&#xff0c;将请求的发送者和接收者解耦&#xff0c;并且能…...

电力通信规约-104实战

电力通信规约-104实战 概述 104规约在广泛应用于电力系统远动过程中&#xff0c;主要用来进行数据传输和转发&#xff0c;本文将结合实际开发实例来讲解104规约的真实使用情况。 实例讲解 因为个人技术栈是Java&#xff0c;所以本篇将采用Java实例来进行讲解。首先我们搭建一…...

什么是事务

在数据库管理系统中&#xff0c;事务&#xff08;Transaction&#xff09;是执行一系列操作的最小工作单元&#xff0c;这些操作要么全部成功&#xff0c;要么全部失败。为了确保数据的一致性和完整性&#xff0c;事务被设计为具备四大特性&#xff0c;即原子性&#xff08;Ato…...

数据结构:双向循坏链表

目录 1.1双向循环链表的结构 2.双向链表功能的实现 2.1初始化链表 2.2销毁链表 2.3创建结点 2.4打印链表 2.5链表查找 2.6链表在pos的前面进行插入 2.7链表删除pos位置的节点 2.8链表的头插&#xff0c;头删 &#xff0c;尾插&#xff0c;尾删 1.1双向循环链表的结构 …...

3.1、SDH的5种标准容器

1、定义与作用 在 SDH&#xff08;同步数字体系&#xff09;中&#xff0c;标准容器&#xff08;C&#xff09;是一种用来装载各种速率的 PDH&#xff08;准同步数字系列&#xff09;信号的信息结构。它的主要作用是进行速率适配&#xff0c;使不同速率的 PDH 信号能够在 SDH 的…...

Jenkins介绍

Jenkins 是一款流行的开源自动化服务器&#xff0c;在软件开发和持续集成 / 持续交付&#xff08;CI/CD&#xff09;流程中发挥着关键作用。 一、主要功能 1.持续集成&#xff08;CI&#xff09; &#xff08;1&#xff09;.自动构建&#xff1a;Jenkins 可以配置为监听代码仓…...

5G学习笔记之Non-Public Network

目录 0. NPN系列 1. 概述 2. SNPN 2.1 SNPN概述 2.2 SNPN架构 2.3 SNPN部署 2.3.1 完全独立 2.3.2 共享PLMN基站 2.3.3 共享PLMN基站和PLMN频谱 3. PNI-NPN 3.1 PNI-NPN概述 3.2 PNI-NPN部署 3.2.1 UPF独立 3.2.2 完全共享 0. NPN系列 1. NPN概述 2. NPN R18 3. 【SNPN系列】S…...

网页生成鸿蒙App

如何网页生成鸿蒙App 纯鸿蒙发布后&#xff0c;鸿蒙App需求上升。如何快速生成鸿蒙App。变色龙云(http://www.appbsl.cn)推出了鸿蒙App打包服务。可以在线自动打包鸿蒙App。 第一步 创建应用 输入网站网址&#xff0c;上传图标。 第二步 生成鸿蒙证书 打开华为开发者管理中…...

JavaWeb通过Web查询数据库内容:(pfour_webquerymysql)

JavaWeb通过Web查询数据库内容&#xff1a; 数据库&#xff1a; 自行建库建表&#xff0c;主键 id 后端&#xff1a; 新建项目模块选择模块&#xff0c;添加依赖创建配置文件&#xff1a; db.propertiesJava类&#xff1a; query查询 前端&#xff1a; Web添加创建query.html…...

将java项目部署到linux

命令解析 Dockerfile: Dockerfile 是一个文本文件&#xff0c;包含了所有必要的指令来组装&#xff08;build&#xff09;一个 Docker 镜像。 docker build: 根据 Dockerfile 或标准指令来构建一个新的镜像。 docker save: 将本地镜像保存为一个 tar 文件。 docker load: 从…...

moviepy将图片序列制作成视频并加载字幕 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” -------------------------------------------------------------…...

ROS1入门教程5:简单行为处理

一、新建项目 # 创建工作空间 mkdir -p demo5/src && cd demo5# 初始化工作空间 catkin_make# 创建功能包 cd src catkin_create_pkg demo roscpp actionlib_msgs message_generation tf 二、创建行为 # 创建行为目录 mkdir action && cd action# 创建行为文…...

Vue:实现输入框不能输负数功能

1、使用v-model指令 <input type"number" v-model"value" min"0" input"checkInput"> checkInput() {this.value Math.max(0, parseInt(this.value)); } 2、使用计算属性 <template><div><input type"…...

管理系统、微信小程序类源码文档-哔哩哔哩教程同步

文章目录 前言通用表基于JavaSpringBootVue前后端分离手机销售商城系统设计实现:基于JavaSpringBootVueuniapp实现大学生校园兼职微信小程序更新中。。。评论区打出你的题目 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能…...

AOP切点表达式之方法表达式execution

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…...

clickhouse-题库

1、clickhouse介绍以及架构 clickhouse一个分布式列式存储数据库&#xff0c;主要用于在线分析查询 2、列式存储和行式存储有什么区别&#xff1f; 行式存储&#xff1a; 1&#xff09;、数据是按行存储的 2&#xff09;、没有建立索引的查询消耗很大的IO 3&#xff09;、建…...