guziteng1

1 第一阶段目标:

 

可以按照时期查询各个省市的疫情统计表格。

以折线图或柱状图展示某天的全国各省的

2第二阶段目标:疫情统计地图可视化:可以通过地图的形式来直观显示疫情的大致分布情况,还可以查看具体省份的疫情统计情况。

在全国地图上使用不同的颜色代表大概确诊人数区间,颜色的深浅表示疫情的严重程度,可以直观了解高危区域;

鼠标移到每个省份会高亮显示、点击鼠标会显示该省具体疫情情况、点击某个省份显示该省疫情的具体情况

显示该省份对应的感染患者人数、疑似患者人数、治愈人数、死亡人数;确诊人数。

3 第三阶段目标:鼠标移到每个市会高亮显示,并且显示简单的数据;

数据下钻:单击各个省可以下钻到各个地市的数据显示。

  这个博客是总结全部疫情展示的总结主要运用mysql+和echarts.js和js工具来展示,

首先展示全国地图当点到省份时显示出死亡人数,治愈人数,疑似人数。

 

 

当点击省份时进入身份在现实各个城市的人数

 

 

 

首先展示全国疫情的地图展示代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>map</title>
    
    <script src="js/echarts.min(1).js"></script>
    <script src="js/china.js"></script>
    <script type="text/javascript"	src="js/jquery-3.4.1.min.js"></script>
    <style>
        *{margin:0;padding:0}
        html,body{
            width:100%;
            height:100%;
        }
        #main{
              width:600px;
              height:450px;
              margin: 150px auto;
              border:1px solid #ddd;
          }
        /*默认长宽比0.75*/
    </style>
</head>
<body>
    <div id="main">
 
    </div>
    <script type="text/javascript">
    
    var myChart = echarts.init(document.getElementById(\'main\'));
    mychart.on(\'click\', function (params) {
        var url = "${pageContext.request.contextPath }/aaha?area=" + params.name;
        window.location.href = url;
    }); 
  myChart.setOption({
	
            tooltip: {
                    formatter:function(params){
                    	 
                        return params.name+\'<br />\'+\'确诊人数:\'+params[\'data\'][\'value\']+\'<br />\'+\'死亡人数:\'
                        +params[\'data\'][\'dead\']+\'<br />\'+\'治愈人数:\'+params[\'data\'][\'cured\'];
                    }//数据格式化
                },
            visualMap: {
                min: 0,
                max: 30000,
                left: \'left\',
                top: \'bottom\',
                text: [\'高\',\'低\'],//取值范围的文字
                inRange: {
                    color: [\'#e0ffff\', \'#006edd\']//取值范围的颜色
                },
                show:true//图注
            },
            geo: {
                map: \'china\',
                roam: false,//不开启缩放和平移
                zoom:1.23,//视角缩放比例
                label: {
                    normal: {
                        show: true,
                        fontSize:\'10\',
                        color: \'rgba(0,0,0,0.7)\'
                    }
                },
                itemStyle: {
                    normal:{
                        borderColor: \'rgba(0, 0, 0, 0.2)\'
                    },
                    emphasis:{
                        areaColor: \'#F3B329\',//鼠标选择区域颜色
                        shadowOffsetX: 0,
                        shadowOffsetY: 0,
                        shadowBlur: 20,
                        borderWidth: 0,
                        shadowColor: \'rgba(0, 0, 0, 0.5)\'
                    }
                }
            },
            
            series : [
                {
                    name: \'信息量\',
                    type: \'map\',
                    geoIndex: 0,
                    nameMap : {

                        \'南海诸岛\' : \'南海诸岛\',
                        \'北京\' : \'北京市\',
                        \'天津\' : \'天津市\',
                        \'上海\' : \'上海市\',
                        \'重庆\' : \'重庆市\',
                        \'河北\' : \'河北省\',
                        \'河南\' : \'河南省\',
                        \'云南\' : \'云南省\',
                        \'辽宁\' : \'辽宁省\',
                        \'黑龙江\' : \'黑龙江省\',
                        \'湖南\' : \'湖南省\',
                        \'安徽\' : \'安徽省\',
                        \'山东\' : \'山东省\',
                        \'新疆\' : \'新疆维吾尔自治区\',
                        \'江苏\' : \'江苏省\',
                        \'浙江\' : \'浙江省\',
                        \'江西\' : \'江西省\',
                        \'湖北\' : \'湖北省\',
                        \'广西\' : \'广西壮族自治区\',
                        \'甘肃\' : \'甘肃省\',
                        \'山西\' : \'山西省\',
                        \'内蒙古\' : "内蒙古自治区",
                        \'陕西\' : \'陕西省\',
                        \'吉林\' : \'吉林省\',
                        \'福建\' : \'福建省\',
                        \'贵州\' : \'贵州省\',
                        \'广东\' : \'广东省\',
                        \'青海\' : \'青海省\',
                        \'西藏\' : \'西藏自治区\',
                        \'四川\' : \'四川省\',
                        \'宁夏\' : \'宁夏回族自治区\',
                        \'海南\' : \'海南省\',
                        \'台湾\' : \'台湾\',
                        \'香港\' : \'香港\',
                        \'澳门\' : \'澳门\'
                    },
                    
                }
            ]
        });
  
  $.post(
  		"qiunile3",
  		{},
  		function(result)
  {	
  			
		var datalist=jQuery.parseJSON(result);
		if(datalist)
			{
			alert(1);
      myChart.setOption({        //加载数据图表
          series: [{
              data: datalist
          }]
      });}
      
     },
      "json"

  
  
  );
 
   
      /*  setTimeout(function () {
            myChart.setOption({
                series : [
                    {
                        name: \'信息量\',
                        type: \'map\',
                        geoIndex: 0,
                        data:dataList
                    }
                ]
            });
        },1000)*/
    </script>
</body>
</html>

  

全国疫情后台servlet代码

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;

import keshihua.province;
import keshihua.xinde;

/**
 * Servlet implementation class qiunile3
 */
@WebServlet("/qiunile3")
public class qiunile3 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public qiunile3() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charest=UTF-8");
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
	
		
		String sql="select * from  yiqing ";
		List<xinde> list = new ArrayList<>();
		// 给集合list创造(new)一个存储空间用于存放数据
          System.out.println(sql);
		Connection conn = DBUtil.getConn();
		Statement state = null;
		ResultSet rs = null;
		xinde grade = null;
		String c=null;
		Gson json=new Gson();
		try {
			state = conn.createStatement();
			rs = state.executeQuery(sql);
			while (rs.next()) // 这里表示,当rs.next()有值得时候,即收到查询结果
				{String shengfen=rs.getString("name");
				String Confirmed_num=rs.getString("confirm");
				String cured=rs.getString("heal");
				String dead=rs.getString("dead");
				grade=new xinde(shengfen,Confirmed_num,cured,dead);
				
				list.add(grade); // 表示,把bean里的数据存入到list当中
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			DBUtil.close(state, conn);
		}
		
		
			c=json.toJson(list);
		System.out.println(c);
		request.setAttribute("list", list);
		response.getWriter().write(c);	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

  进入省份后疫情代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>某地区</title>
    
    <script src="js/echarts.min(1).js"></script>
    <script src="js/china.js"></script>
    <script type="text/javascript"	src="js/jquery-3.4.1.min.js"></script>
</head>
<body>
 <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
        <div id="main" style="width: 800px;height:600px;"></div>    
        
<script>

var myChart = echarts.init(document.getElementById(\'main\'));
myChart.showLoading();
var area = "${area}";
$.get("${pageContext.request.contextPath }/js/"+ area +".json", function (geoJson) {

    myChart.hideLoading();

    echarts.registerMap(area, geoJson);

    myChart.setOption(option = {
        title: {
            text: area + \'地区疫情情况\',
            subtext: \'该数据仅供参考\',
        },
        tooltip: {
            trigger: \'item\',
            formatter: \'{b}<br/>{c} (p / km2)\'
        },
        toolbox: {
            show: true,
            orient: \'vertical\',
            left: \'right\',
            top: \'center\',
            feature: {
                dataView: {readOnly: false},
                restore: {},
                saveAsImage: {}
            }
        },
        visualMap: {
            min: 800,
            max: 50000,
            text: [\'High\', \'Low\'],
            inRange: {
                color: [\'lightskyblue\', \'yellow\', \'orangered\']
            }
        },
        series: [
            {
                name: \'香港18区人口密度\',
                type: \'map\',
                mapType: area, // 自定义扩展图表类型
                label: {
                    show: true
                }
            }
        ]
    });
});


//异步加载数据
$.ajax({
   type : "post",
   async : true,            //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
   url : "${pageContext.request.contextPath }/zilei", 
   data:{"area":area},
   //请求发送到TestServlet处
   success : function(resultJson) {
	   
       var result= jQuery.parseJSON(resultJson);
       //请求成功时执行该函数内容,result即为服务器返回的json对象
       if (result) {
               mychart.setOption({        //加载数据图表
                  series: [{
                      data: result
                  }]
              });
              
       }
  },
   error : function(errorMsg) {
       //请求失败时执行该函数
   alert("图表请求数据失败!");
   }
}); 

</script>
</body>
</html>

  

后台展示

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class aaha
 */
@WebServlet("/aaha")
public class aaha extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public aaha() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
System.out.println("???");
		request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        String area = request.getParameter("area");
        request.setAttribute("area", area);
        System.out.println("跳zhuan");
request.getRequestDispatcher("zxc.jsp").forward(request, response);
System.out.println("懵逼");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

如果需要查抄echarts链接

链接:https://pan.baidu.com/s/1MJQI9UjLKZ2AZPHw-S77OA
提取码:yis3

 

分类:

技术点:

相关文章: