基于Java实现的新冠肺炎疫情实时动态地图

一、关键技术介绍

jQuery 调用 AJAX

AJAX 即“Asynchronous JavaScript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。jQuery 对 AJAX 进行了多步封装,简化了代码量。
请求成功后,通过 success: function 对数据进行处理。

FastJSON

它是阿里巴巴的一套开源 JSON 解析库,此次项目中用于对 JSON 数据进行解析,优点是速度快,性能高,使用起来很简单,只需要一个 jar 包,就可以在 JDK 上跑起来。
例如:下面是一段取得接口中的数据的操作,先通过 getJSONArray 获得 JSON 数组,然后通过 getString 和 getInteger 将 JSON 数组中的数据解析成对应的数据类型。

任务计划

定时任务采用 servlet 的监听器配合 timer。因为每日的疫情数据会不确定性进行更新,所以这里采用定时任务每隔一个小时更新一次数据库中当天的数据。
监听器在 web.xml 中的配置

该类实现了 ServletContextListener,当服务器 Tomcat 启动时,监听便会启动,执行 contextInitialized 方法。定时任务实现的原理是方法中的 timer.schedule(task,delay,period)这里面的三个参数含义为在 delay 毫秒后每个 period 毫秒,执行一次 task。task 要为 TimerTask 类型参数,会自动执行其中的 run 方法。我这里参数设置的含义是从现在起,每隔 1 个小时,执行一次任务。

Log4J

Log4j 是 Apache 的一个开源项目,通过使用 Log4j,我们可以控制日志信息安照指定的格式输送到目的地;设置 log4j 产生日志的级别是 info 及以上,产生日志的方式是控制台和文件。文件会每日产生一个,产生文件的位置是 Tomcat 的 logs 目录下。

二、项目设计

网站模块

项目结构图

三、效果展示

项目的顶部,展示当前国内外疫情的实时数据,上一次的更新时间;并且数据会实时进行更新。每个数据包括四个部分:累计确诊、现存确诊、累计治愈、累计死亡以及相对于昨日的变化情况。

国内疫情历史,从 2020-02-14 开始截止到目前为止。通过动态时间轴的方式进行展现,鼠标悬浮时可以看到地图中对应省份的确诊数,在最上侧可以看到当前疫情的现有确诊或累计确诊的全国感染人数,在右侧可以看到感染人数前十省份的排名情况。地图可以通过鼠标滚轮进行放大或缩小,在地图的下方是有两个按钮一个是下载,还有一个是还原地图。在动态时间轴的下方可以通过点击累计确诊和现有确诊的按钮进行切换。

全球疫情历史,可以查到从 2020-03-14 截止到至今为止的每日各国的累计确诊或现有确诊人数。在顶部可以看到对应的全球感染人数,在右侧是对应当天的感染人数前十国家的排名。

1.28 日到至今的全球疫情发展趋势折线图。
1.28 日到至今的全球治愈/死亡率折线图。

四、总结

通过写此次博客记录一下自己的项目经历和成果,不过目前项目中的细节方面存在很多不足之处,由于能力有限,不能完善,留作今后有能力再去一点点解决吧!

猜你喜欢

转载自blog.csdn.net/newlw/article/details/125047794
今日推荐