当前位置:   article > 正文

2【源码】数据可视化:基于 Echarts + Java SpringBoot 实现的动态实时大屏范例-物流大数据_物流大数据可视化大屏 java

物流大数据可视化大屏 java

数据可视化大屏的出现,掀起一番又一番的浪潮,众多企业纷纷想要打造属于自己的“酷炫吊炸天”的霸道总裁大屏驾驶舱。

之前小伙伴们建议我出一些视频课程来学习Echarts,这样可以更快上手,所以我就追星赶月的录制了《Echarts - 0基础入门课程》 ,希望可以帮到有需要的小伙伴。

传送门

YYDatav的数据可视化大屏《精彩案例汇总》(Java SpringBoot&Echarts源码)_YYDataV的博客-CSDN博客

2【源码】数据可视化:基于Echarts+JavaSpringBoot实现的动态实时大屏范例-物流大数据-企业管理文档类资源-CSDN下载

效果展示

一、 确定需求方案

1、确定产品上线部署的屏幕LED分辨率

1920px*1080px,15:9屏宽比,F11全屏后占满整屏且无滚动条。

2、部署方式 

基于免安装可执行程序:支持Windows、Linux、Mac等各种操作系统;将程序复制到服务器上即可,无需其它环境依赖;

观看方式:既可在服务器上直接观看程序界面,也可在远程用浏览器打开播放,例如Chrome浏览器、360浏览器等。

二、整体架构设计

  1. 前端基于Echarts开源库设计,使用WebStorm编辑器;
  2. 后端基于Java Web实现,使用 IDEA 编辑器;
  3. 数据传输格式:JSON;
  4. 数据源类型:目前采用JSON文件方式,自行添加Mybatis可支持PostgreSQL、MySQL、Oracle、Microsoft SQL Server、SQLite,自行添加POI可支持Excel表格等,还可以定制HTTP API接口方式。
  5. 数据更新方式:采用http get 轮询方式 。在实际应用中,也可以视情况选择监测后端数据实时更新,实时推送到前端的方式;

三、编码实现 (关键代码)

1、前端html代码

  1. <div class="loading">
  2. <div class="loadbox"><img src="picture/loading.gif"> 页面加载中...</div>
  3. </div>
  4. <div class="head">
  5. <h1>案例 - 物流大数据服务平台</h1>
  6. <div class="weather"><!--<img src="picture/weather.png"><span>多云转小雨</span>--><span id="showTime"></span></div>
  7. <script>
  8. var t = null;
  9. t = setTimeout(time, 1000);//开始运行
  10. function time() {
  11. clearTimeout(t);//清除定时器
  12. dt = new Date();
  13. var y = dt.getFullYear();
  14. var mt = dt.getMonth() + 1;
  15. var day = dt.getDate();
  16. var h = dt.getHours();//获取时
  17. var m = dt.getMinutes();//获取分
  18. var s = dt.getSeconds();//获取秒
  19. document.getElementById("showTime").innerHTML = y + "年" + mt + "月" + day + "-" + h + "时" + m + "分" + s + "秒";
  20. //async_data();
  21. t = setTimeout(time, 1000); //设定定时器,循环运行
  22. }
  23. </script>
  24. </div>
  25. <div class="mainbox">
  26. <ul class="clearfix">
  27. <li>
  28. <div class="boxall" style="height: 3.1rem">
  29. <div class="main_title"><img alt="" src="img/t_1.png">湖南货物收入</div>
  30. <div class="allnav" id="echart_1"></div>
  31. <div class="boxfoot"></div>
  32. </div>
  33. <div class="boxall" style="height: 3.15rem">
  34. <div class="main_title">湖南省地图<img alt="" src="img/t_2.png"></div>
  35. <div class="allnav" id="echart_2"></div>
  36. <div class="boxfoot"></div>
  37. </div>
  38. <div class="boxall" style="height: 3.1rem" >
  39. <div class="main_title">
  40. <img alt="" src="img/t_7.png">
  41. 湖南省交通
  42. </div>
  43. <div class="main_table t_btn8">
  44. <table id="table_1">
  45. <thead>
  46. <tr>
  47. <th>运营数(辆)</th>
  48. <th>线路总长度(公里)</th>
  49. <th>客运总量(万人次)</th>
  50. <th>日期</th>
  51. </tr>
  52. </thead>
  53. <tbody>
  54. <tr>
  55. <td>21059</td>
  56. <td>26497</td>
  57. <td>184448</td>
  58. <td>2018</td>
  59. </tr>
  60. <tr>
  61. <td>18777</td>
  62. <td>21140</td>
  63. <td>188808</td>
  64. <td>2017</td>
  65. </tr>
  66. <tr>
  67. <td>15757</td>
  68. <td>20225</td>
  69. <td>201143</td>
  70. <td>2016</td>
  71. </tr>
  72. <tr>
  73. <td>17458</td>
  74. <td>19567</td>
  75. <td>202446</td>
  76. <td>2015</td>
  77. </tr>
  78. <tr>
  79. <td>11323</td>
  80. <td>14562</td>
  81. <td>279854</td>
  82. <td>2014</td>
  83. </tr>
  84. </tbody>
  85. </table>
  86. </div>
  87. <div class="boxfoot"></div>
  88. </div>
  89. </li>
  90. <li>
  91. <div class="boxall" style="height: 6.5rem">
  92. <div class="main_title">全国地图<img alt="" src="img/t_map.png"></div>
  93. <div class="map4" id="echart_map" ></div>
  94. <div class="boxfoot"></div>
  95. </div>
  96. <div class="boxall" style="height: 3.1rem" >
  97. <div class="main_title" >
  98. <img alt="" src="img/t_7.png">
  99. 湖南省业务量
  100. </div>
  101. <div class="main_table t_btn8">
  102. <table id="table_2">
  103. <thead>
  104. <tr>
  105. <th>运营数(辆)</th>
  106. <th>线路总长度(公里)</th>
  107. <th>客运总量(万人次)</th>
  108. <th>日期</th>
  109. </tr>
  110. </thead>
  111. <tbody>
  112. <tr>
  113. <td>21059</td>
  114. <td>26497</td>
  115. <td>184448</td>
  116. <td>2018</td>
  117. </tr>
  118. <tr>
  119. <td>18777</td>
  120. <td>21140</td>
  121. <td>188808</td>
  122. <td>2017</td>
  123. </tr>
  124. <tr>
  125. <td>15757</td>
  126. <td>20225</td>
  127. <td>201143</td>
  128. <td>2016</td>
  129. </tr>
  130. <tr>
  131. <td>17458</td>
  132. <td>19567</td>
  133. <td>202446</td>
  134. <td>2015</td>
  135. </tr>
  136. <tr>
  137. <td>11323</td>
  138. <td>14562</td>
  139. <td>279854</td>
  140. <td>2014</td>
  141. </tr>
  142. </tbody>
  143. </table>
  144. </div>
  145. <div class="boxfoot"></div>
  146. </div>
  147. </li>
  148. <li>
  149. <div class="boxall" style="height:3.1rem">
  150. <div class="main_title"><img alt="" src="img/t_4.png">货物周转量</div>
  151. <div class="allnav" id="echart_3"></div>
  152. <div class="boxfoot"></div>
  153. </div>
  154. <div class="boxall" style="height: 3.15rem">
  155. <div class="main_title"> <img alt="" src="img/t_5.png">湖南高速公路</div>
  156. <div class="allnav" id="echart_4"></div>
  157. <div class="boxfoot"></div>
  158. </div>
  159. <div class="boxall" style="height: 3.1rem">
  160. <div class="main_title"><img alt="" src="img/t_6.png">湖南省飞机场</div>
  161. <div class="allnav" id="echart_5"></div>
  162. <div class="boxfoot"></div>
  163. </div>
  164. </li>
  165. </ul>
  166. </div>
  167. <div class="back"></div>

2、前端JS代码

  1. //echart_1湖南货物收入
  2. function echart_1() {
  3. // 基于准备好的dom,初始化echarts实例
  4. var myChart = echarts.init(document.getElementById('echart_1'));
  5. option = {
  6. //鼠标缩放和平移
  7. roam: true,
  8. tooltip: {
  9. trigger: 'item',
  10. formatter: "{a} <br/>{b} : {c}万元"
  11. },
  12. legend: {
  13. x: 'center',
  14. y: '15%',
  15. data: ['张家口', '承德', '衡水', '邢台', '邯郸', '保定', '秦皇岛', '石家庄', '唐山'],
  16. icon: 'circle',
  17. textStyle: {
  18. color: '#fff',
  19. }
  20. },
  21. calculable: true,
  22. series: [{
  23. name: '',
  24. type: 'pie',
  25. //起始角度,支持范围[0, 360]
  26. startAngle: 0,
  27. //饼图的半径,数组的第一项是内半径,第二项是外半径
  28. radius: [41, 100.75],
  29. //支持设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
  30. center: ['50%', '40%'],
  31. //是否展示成南丁格尔图,通过半径区分数据大小。可选择两种模式:
  32. // 'radius' 面积展现数据的百分比,半径展现数据的大小。
  33. // 'area' 所有扇区面积相同,仅通过半径展现数据大小
  34. roseType: 'area',
  35. //是否启用防止标签重叠策略,默认开启,圆环图这个例子中需要强制所有标签放在中心位置,可以将该值设为 false
  36. avoidLabelOverlap: false,
  37. label: {
  38. normal: {
  39. show: true,
  40. formatter: '{c}万元'
  41. },
  42. emphasis: {
  43. show: true
  44. }
  45. },
  46. labelLine: {
  47. normal: {
  48. show: true,
  49. length2: 1,
  50. },
  51. emphasis: {
  52. show: true
  53. }
  54. },
  55. data: chart_1_data
  56. }]
  57. };
  58. // 使用刚指定的配置项和数据显示图表。
  59. myChart.setOption(option);
  60. window.addEventListener("resize", function () {
  61. myChart.resize();
  62. });
  63. }

3、后端Java代码

  1. @RestController
  2. @RequestMapping("/json")
  3. public class Process {
  4. @RequestMapping("/{filename}")
  5. public String json(@PathVariable("filename") String filename) throws Exception {
  6. System.out.println(filename);
  7. ChangeJSON(filename);
  8. String jsonStr = readJSON(filename);
  9. System.out.println(jsonStr);
  10. return jsonStr;
  11. }

4、数据通信 JSON

  1. [
  2. {
  3. "value": 285,
  4. "name": "张家口",
  5. "itemStyle": {
  6. "normal": {
  7. "color": "#f845f1"
  8. }
  9. }
  10. },
  11. {
  12. "value": 662,
  13. "name": "承德",
  14. "itemStyle": {
  15. "normal": {
  16. "color": "#ad46f3"
  17. }
  18. }
  19. },
  20. {
  21. "value": 2826,
  22. "name": "衡水",
  23. "itemStyle": {
  24. "normal": {
  25. "color": "#5045f6"
  26. }
  27. }
  28. },
  29. {
  30. "value": 599,
  31. "name": "邢台",
  32. "itemStyle": {
  33. "normal": {
  34. "color": "#4777f5"
  35. }
  36. }
  37. },
  38. {
  39. "value": 2502,
  40. "name": "邯郸",
  41. "itemStyle": {
  42. "normal": {
  43. "color": "#44aff0"
  44. }
  45. }
  46. },
  47. {
  48. "value": 984,
  49. "name": "保定",
  50. "itemStyle": {
  51. "normal": {
  52. "color": "#45dbf7"
  53. }
  54. }
  55. },
  56. {
  57. "value": 582,
  58. "name": "秦皇岛",
  59. "itemStyle": {
  60. "normal": {
  61. "color": "#f6d54a"
  62. }
  63. }
  64. },
  65. {
  66. "value": 2324,
  67. "name": "石家庄",
  68. "itemStyle": {
  69. "normal": {
  70. "color": "#f69846"
  71. }
  72. }
  73. },
  74. {
  75. "value": 2060,
  76. "name": "唐山",
  77. "itemStyle": {
  78. "normal": {
  79. "color": "#ff4343"
  80. }
  81. }
  82. },
  83. {
  84. "value": 893,
  85. "name": "",
  86. "itemStyle": {
  87. "normal": {
  88. "color": "transparent"
  89. }
  90. },
  91. "label": {
  92. "show": false
  93. },
  94. "labelLine": {
  95. "show": false
  96. }
  97. }
  98. ]

四、开发配置&代码结构说明

数据可视化:基于 Echarts +Java SpringBoot 实现的动态实时大屏【Java开发环境搭建】

五、更多资源 


YYDatav的数据可视化大屏《精彩案例汇总》(Python&Echarts源码)_YYDataV的博客-CSDN博客

《工厂订单出入库信息管理系统》完整案例详解(含演示网址账号)(Go&Vue源码)_YYDataV的博客-CSDN博客

本次分享结束,欢迎讨论!QQ微信同号: 6550523

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/974389
推荐阅读
相关标签
  

闽ICP备14008679号