vue基于Echarts、百度地图MapVGL实现可视化大屏数据展示

一、布局

可视化大屏
常见的大屏数据展示布局,一般会将地图作为整个屏幕的背景,在地图上以九宫格布局展示各类数据图表。实现这一效果可以使地图的z-index=1,在地图上的图表等z-index>1,下面会详细描述这种设计该如何实现:
在这里插入图片描述

<div style="width:100%;height:100%">
<!--最外层div要设置宽、高为100%--><nav style="height: 58px;width: 100%;position: absolute;top: 0;left: 0;z-index: 20;"><!--顶部导航绝对定位,图层z-index=21,浮于地图上方--></nav><div style="position: absolute;width: 100%;height: calc(100% - 58px);top: 58px;left: 0;"><!--图表内容wrapper,使用绝对定位,使图表浮于地图上方,不设置图层地图可以监听到鼠标--><div style="position: relative;z-index: 20;"><!--图表card,采用栅格化布局,card--></div></div><div style="width: 100%; height: 100%;"><!--地图--></div>
</div>

二、Echarts图表自适应

  1. 图表div的宽度、高度不要写死,可以使用百分比
  2. echart图表本身提供了一个resize的函数,我们只需要监听页面的resize变化以后,去执行echarts的resize方法即可重绘canvas

加载图表的组件graph.vue

<template><div style="height: 100%;"><Spin fix v-show="loading"><Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon><div>加载中...</div></Spin><div :id="id" :data="data" style="height: 100%;"></div></div>
</template>
<script>
//引入自定义主题rainbow.json
import rainbow from '../../assets/rainbow.json'
export default {props:["id","data"],data(){return{graph:null,loading:true,}},methods:{drawGraph(id,data){let _this = this;let myChart = document.getElementById(id);//自定义主题this.graph = this.$echarts.init(myChart,'rainbow');this.graph.setOption(data);this.loading = false;//浏览器窗口大小变化时触发echarts的resize函数,重新绘制canvaswindow.addEventListener("resize",function(){_this.graph.resize();});}},mounted(){this.$echarts.registerTheme("rainbow",rainbow);this.drawGraph(this.id,this.data);},beforeDestroy(){if(this.graph) this.graph.clear();},watch:{data:{handler(newValue,oldValue){this.drawGraph(this.id,newValue);},deep:true}}
}
</script>
<style>
.demo-spin-icon-load{animation: ani-demo-spin 1s linear infinite;}@keyframes ani-demo-spin {from { transform: rotate(0deg);}50%  { transform: rotate(180deg);}to   { transform: rotate(360deg);}}
</style>

graph.vue的使用
demo.vue

<template><div class="content"><div class="v-card m-r-10 m-l-10"><h2 class="card-title">图表标题</h2><graph :id="'graphId'" :data="graphOption" style="width:100%;height:100%"></graph>    </div></div>
</template>
<script>
import graph from '../../my-components/graph.vue'
export default {name: 'demo',components:{graph,},data(){graphOption:{}},methods: (){initDemoChart(){//获取图表数据,配置图表参数setOptionthis.graphOption={title: {text: 'ECharts 入门示例'},tooltip: {},legend: {data: ['销量']},xAxis: {data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]};}},mounted () {this.initDemoChart();},}
</script>

三、Echarts自定义主题

大屏数据展示往往需要根据设计图自定义主题。Echarts自定义主题也十分简单,操作如下:
1.使用Echarts官网主题编辑器(https://echarts.apache.org/zh/theme-builder.html)自定义主题,下载主题json。
2.注册主题(查看官网说明)

// 假设主题名称是 "vintage"
fetch('theme/vintage.json').then(r => r.json()).then(theme => {echarts.registerTheme('vintage', theme);var chart = echarts.init(dom, 'vintage');})

四、vue-baidu-map与vue-mapvgl

vue-baidu-mapvue-mapvgl
基于 百度地图 JS API 开发百度地图mapvgl开发
可实现常见的地图信息可视化基于WebGL的地理信息可视化库,可以用来展示大量基于3D的地理信息点线面数据。解决大数据量的三维地理数据展示问题及一些炫酷的三维效果。
https://dafrok.github.io/vue-baidu-mapVue2.x (https://docs.guyixi.cn/vue-mapvgl) Vue3 (https://vue-mapvgl.guyixi.cn/)

如果要实现3D效果,或者展示大数据量的地理信息数据,可以考虑选择vue-mapvgl

五、定制个性化地图

  1. 在百度地图个性化地图编辑平台(https://lbsyun.baidu.com/customv2/help.html)定制主题;
  2. 下载主题JSON并引用
    以vue-mapvgl为例
<template><div class="bmap-page-container"><el-bmap vid="bmapDemo" ref="bmapDemo" :mapStyleV2="mapStyle" :tilt="60" :heading="0" :zoom="10" :center="[120.786975, 36.943199]" class="bmap-View"></el-bmap><div class="toolbar"><button @click="getMap()">get map</button></div></div></template><style>.bmap-demo {height: 300px;}</style><script>//引入下载的地图主题JSONimport styleJson from '../../assets/baiduMap/mapStyle.json'export default {name: 'baiduDemo',computed:{mapStyle:function(){let style = {styleJson:styleJson}return style;},}}</script>

六、常用组件库及工具

大屏数据展示组件库

  1. datav:http://datav.jiaminghi.com/

Echarts

  1. 官网:https://echarts.apache.org/zh/index.html
  2. echarts示例网站:
    http://ppchart.com
    https://madeapie.com

百度地图

  1. vue-baidu-map :https://dafrok.github.io/vue-baidu-map|
  2. vue-mapvgl:Vue2.x (https://docs.guyixi.cn/vue-mapvgl)
  3. vue-mapvgl:Vue3 (https://vue-mapvgl.guyixi.cn/)

地图可视化工具类

  1. 百度地图个性化地图编辑平台
  2. 阿里云地图选择器
  3. geoJson数据下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/72349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式开发笔试面试

C语言部分&#xff1a; 1.gcc的四步编译过程 1.预处理 展开头文件&#xff0c;删除注释、空行等无用内容&#xff0c;替换宏定义。 gcc -E hello.c -o hello.i 2.编译 检查语法错误&#xff0c;如果有错则报错&#xff0c;没有错误则生成汇编文件。 gcc -S hello.i -o h…

C++ vector模拟实现

目录 使用insert时迭代器失效使用erase时迭代器失效使用memcpy浅拷贝的问题调用最匹配的函数可能出现的问题模拟实现vector 使用insert时迭代器失效 在模拟vector插入的时候会遇到扩容后pos失效的问题&#xff0c;需要更新pos vector():_start(nullptr), _finish(nullptr), _e…

解耦只是一个巧合?

本文分享一篇在IJCAI2023看到的文章&#xff1a;Overlooked Implications of the Reconstruction Loss for VAE Disentanglement 首先回顾下VAE&#xff0c;其loss函数有两项&#xff0c;一项是重构误差&#xff0c;另一项是正则项&#xff1a; L r e c ( x , x ^ ) E q ϕ (…

QT(9.1)对话框与事件处理

作业&#xff1a; 1. 完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&…

23062C++QT day2

封装一个结构体&#xff0c;结构体中包含一个私有数组&#xff0c;用来存放学生的成绩&#xff0c;包含一个私有变量&#xff0c;用来记录学生个数&#xff0c; 提供一个公有成员函数&#xff0c;void setNum(int num)用于设置学生个数 提供一个公有成员函数&#xff1a;void…

FPGA实战小项目3

基于FPGA的波形发生器 基于FPGA的波形发生器 基于FPGA的beep音乐播放器设计 基于FPGA的beep音乐播放器设计 基于FPGA的cordic算法实现DDS sin和cosine波形的产生 基于FPGA的cordic算法实现DDS sin和cosine波形的产生

无需公网IP,实现远程访问群晖Drive并挂载为电脑磁盘的方法

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…

利用MQ实现mysql与elasticsearch数据同步

流程 1.声明exchange、queue、RoutingKey 2. 在hotel-admin中进行增删改&#xff08;SQL&#xff09;&#xff0c;完成消息发送 3. 在hotel-demo中完成消息监听&#xff0c;并更新elasticsearch数据 4. 测试同步 1.引入依赖 <!--amqp--> <dependency><groupId&…

欧洲云巨头OVHcloud收购边缘计算专家 gridscale

边缘计算社区近日获悉&#xff0c;欧洲云巨头OVHcloud已进入全面收购德国公司 gridscale 的谈判&#xff0c;该公司是一家专门从事超融合基础设施的软件提供商。 此次战略收购将标志着 OVHcloud 的另一个重要里程碑&#xff0c;使该集团能够显着加速其地理部署&#xff0c;并进…

lv3 嵌入式开发-6 linux shell脚本编程(概念、变量、语句)

1 Shell脚本概述 1.1Shell脚本概述 Shell脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件&#xff0c;将一些 shell 的语法与命令&#xff08;含外部命令&#xff09;写在里面&#xff0c;搭配正则表达式、管道命令与数据流重定向等功能 1.2Shell脚本编写流…

[JAVA] byte与int的类型转换案例剖析

总结&#xff1a; ①没有byte的字面值&#xff0c;赋值时需要强制转换类型 ②涉及运算&#xff0c;系统自动进行类型升级&#xff0c;由此用final修饰&#xff0c;代表这是一个不会更改值的常量&#xff0c;通过编译 感受&#xff1a;还是用int吧&#xff0c;自动类型转换太复…

Java程序员所需Javascript知识

它是一种脚本语言&#xff0c;可以用来更改页面内容&#xff0c;控制多媒体&#xff0c;制作图像、动画等等 js 代码位置 <script>// js 代码 </script>引入 js 脚本&#xff0c;在js脚本中写js代码 <script src"js脚本路径"></script>注…

滑动窗口实例7(串联所有单词的子串)

题目&#xff1a; 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如&#xff0c;如果 words ["ab","cd","ef"]&#xff0c;…

OpenCV之形态学操作

形态学操作包含以下操作&#xff1a; 腐蚀 (Erosion)膨胀 (Dilation)开运算 (Opening)闭运算 (Closing)形态梯度 (Morphological Gradient)顶帽 (Top Hat)黑帽(Black Hat) 其中腐蚀和膨胀操作是最基本的操作&#xff0c;其他操作由这两个操作变换而来。 腐蚀 用一个结构元素…

简述视频智能分析EasyCVR视频汇聚平台如何通过“AI+视频融合”技术规避八大特殊作业风险

视频智能分析EasyCVR视频汇聚平台可以根据不同的场景需求&#xff0c;让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上&#xff0c;视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储磁盘阵列、录…

noetic 怎么下载robotiq_modbus_tcp 从而使用robotiq二指夹爪

1&#xff0c;会科学上网 2&#xff0c; # Modbus TCP rosdep install robotiq_modbus_tcp3&#xff0c;报错 4&#xff0c;去robotiq的功能包里面找两个大爷&#xff08;tmd&#xff09; 分别修改package.xml 本来是python &#xff0c; 然后分别修改成python3 然后参考其他…

aws-msk-托管kafka集群的简单使用(VPC内部访问:无验证和SASL认证)

1.使用控制台创建即可 根据实例类型创建需要至少15分以上&#xff0c;可以提前创建好ec2实例和Secrets Manager,一会会使用到 2. 创建Secrets Manager &#xff08;使用无认证时请跳过&#xff09; 官方文档&#xff1a;https://docs.aws.amazon.com/zh_cn/msk/latest/deve…

Docker实战:docker compose 搭建Rocketmq

1、配置文件准备 1.1、 新建目录&#xff1a;/home/docker/data/rocketmq/conf mkdir /home/docker/data/rocketmq/conf1.2、 在上面目录下新建文件broker.conf文件&#xff0c;内容如下 brokerClusterName DefaultCluster brokerName broker-a brokerId 0 deleteWhen 0…

[react基础]关于v6版本route的变化,以及常见应用模式

该说不说,在做这些之前,你要记得一件事 route不是react或者vue等原本就有的组件!需要你手动下载!然后导入! 原本的框架只是最终挂载到一个html界面上!!! 别再问我为啥你扒下来的代码为啥不好使了! 讨厌 > _< 下载指令去看我另一篇推文 今天复盘了一下自己的实训…

2023年数学建模国赛A 定日镜场的优化设计思路分析

构建以新能源为主体的新型电力系统&#xff0c;是我国实现“碳达峰”“碳中和”目标的一项重要措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。定日镜是塔式太阳能光热发电站&#xff08;以下简称塔式电站&#xff09;收集太阳能的基本组件&#xff0c;其底座由…