快速搭建省级疫情的WebGL可视化系统

2024-02-25 09:18

本文主要是介绍快速搭建省级疫情的WebGL可视化系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

现在,新型冠状病毒肺炎疫情(后面简称疫情)已然成为人们实时关注的话题。为了更加直观展示疫情的状况,我们可以借助三维WebGL客户端来进行可视化系统的构建。下面就由小编来介 绍如何快速搭建一个简易的省级疫情可视化系统。

一 数据准备

1.疫情数据

因为小编是做的四川省的疫情展示,所以小编是在四川发布官网获取的数据,通过整理成excel表格将相应数据传入idesktop。

2.四川省行政区域数据

可根据idesktop范例包里的china100数据源获取数据,并经过一系列叠加分析整理出四川省行政区域数据

二.处理数据,并发布服务

作为一个简易的可视化系统,主要的功能便是专题图。
专题图可以从前端或者后端来实现。
前端实现相对就比较灵活,可实时修改数据来改变专题图,但是过程比较繁琐,需要结合iserver相应功能实现
后端实现就特别轻松,直接用iDesktop制作专题图,切片发布服务即可,好处就是简单方便,缺点就是数据修改是不可能的了,只能重新再切图。
这两种方案可根据自己的系统要求来制作,因为本次是制作的是截至三月份的四川疫情,数据是不会变的,所以直接采用后者就行了。我会在下一篇博客介绍如何从前端直接构造专题图。
本次系统需要用到统计,分段,折线图来展示进行展示,下面介绍如何制作
1.分段图制作
建议在地图制作,先制作分段专题图
在这里插入图片描述
再制作标签专题图,叠加上
在这里插入图片描述
再通过新建布局,新建图例,将图例复制到地图里面,最后对地图切三维缓存即可。

2.统计图制作
直接通过对面制作的三维圆柱统计专题图,切缓存会发现只有面数据,不会生成圆柱体数据 。所以这里需要换一个思路,可以先对四川各市点做缓冲区分析,缓冲成面,然后再通过拉伸,设置拉伸高度关联字段为疫情关联字段。制作好过后切缓存。
在这里插入图片描述
3.折线图
这个需要用到前端echarts来实现,稍后讲解

服务发布
把上面的分段图和统计图切片加入到场景里面,再把带有疫情信息的四川行政区域面进行切三维缓存,加入到场景里面,作为底图使用。(总计三个切片)保存工作空间,发布服务。

三 WebGL系统搭建

1.界面搭建,这个就根据自己喜好来选择框架搭建。
2.功能实现,先说分段图和统计图,这两个因为是在后台做好的,所以只需要分别用按钮去控制添加,显隐即可。
折线图需要用到echarts结合数据查询实现。下面主要说明折线图的实现步骤。
(1)引入echarts…min.js,并且初始化一个dom “map” 去承载
(2)通过indexDB来查询各个市区的疫情情况,记录到一个数组data里

var name=[];
var count=[];//初始化数组,分别去承载市区名字,各个市区确诊人数
var layer=viewer.scene.layers.find('sichuan');//找到四川行政区
layer.indexedDBSetting.isOpen = true;
layer.indexedDBSetting.isAttributesSave = true; 
for(var i=1;i<22;i++) //总共21个市区,循环获取数据
{var promise=layer.getAttributesById(1);
promise.then(function(data){
name.push(data.name);
name.push(data.count);
})
}
//下面代码为填充echarts表
var myChart = echarts.init(document.getElementById("map"));var option = {backgroundColor: "rgba(73,139,156,0.9)",title: {text: "疫情变化线"},tooltip: {trigger: "axis"},calculable: true,xAxis: [{		          data:name,axisLabel: {interval: 0,formatter:function(value){return value.split("").join("\n");}}}				 			 ],		 yAxis: [{	           	           }],series: [{name: "",type: "line",data:count}]};myChart.setOption(option);				  

结果展示

以下为小编快速搭建的一个简易小系统,作为参考

在这里插入图片描述
在文章的最后小编也衷心的祈祷疫情能够早点结束,武汉加油!

这篇关于快速搭建省级疫情的WebGL可视化系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745042

相关文章

C#高效实现在Word文档中自动化创建图表的可视化方案

《C#高效实现在Word文档中自动化创建图表的可视化方案》本文将深入探讨如何利用C#,结合一款功能强大的第三方库,实现在Word文档中自动化创建图表,为你的数据呈现和报告生成提供一套实用且高效的解决方... 目录Word文档图表自动化:为什么选择C#?从零开始:C#实现Word文档图表的基本步骤深度优化:C

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

SpringCloud Stream 快速入门实例教程

《SpringCloudStream快速入门实例教程》本文介绍了SpringCloudStream(SCS)组件在分布式系统中的作用,以及如何集成到SpringBoot项目中,通过SCS,可... 目录1.SCS 组件的出现的背景和作用2.SCS 集成srping Boot项目3.Yml 配置4.Sprin

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

MySQL 批量插入的原理和实战方法(快速提升大数据导入效率)

《MySQL批量插入的原理和实战方法(快速提升大数据导入效率)》在日常开发中,我们经常需要将大量数据批量插入到MySQL数据库中,本文将介绍批量插入的原理、实现方法,并结合Python和PyMySQ... 目录一、批量插入的优势二、mysql 表的创建示例三、python 实现批量插入1. 安装 PyMyS

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

MongoDB搭建过程及单机版部署方法

《MongoDB搭建过程及单机版部署方法》MongoDB是一个灵活、高性能的NoSQL数据库,特别适合快速开发和大规模分布式系统,本文给大家介绍MongoDB搭建过程及单机版部署方法,感兴趣的朋友跟随... 目录前言1️⃣ 核心特点1、文档存储2、无模式(Schema-less)3、高性能4、水平扩展(Sh

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多