zoukankan      html  css  js  c++  java
  • 全国疫情统计可视化地图

    全国疫情统计可视化地图

    第一阶段目标:

    导入全国疫情数据库;可以按十七查询各省市的疫情统计表格;以折线图或柱状图展示摩天的全国各省确诊人数;

    代码:

    data.java

    package Dao;

    public class Data {

        private String pri;

        private String confirmnum;

       

        public Data() {

            // TODO Auto-generated constructor stub

        }

        public String getPri() {

            return pri;

        }

        public void setPri(String pri) {

            this.pri = pri;

        }

        public String getConfirmnum() {

            return confirmnum;

        }

        public void setConfirmnum(String confirmnum) {

            this.confirmnum = confirmnum;

        }

    }

    DBUtil.java

    package MyDBUtil;

    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import net.sf.json.JSONArray;

    import net.sf.json.JSONObject;

    public class DBUtil {

        private static String URL="jdbc:mysql://localhost:3306/payiqing?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC";

        private static String username="root";

        private static String password="sS20000608";

        public static Connection getConnection() {

            Connection connection=null;

            try {

                Class.forName("com.mysql.cj.jdbc.Driver");

            } catch (ClassNotFoundException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }

            try {

                connection=DriverManager.getConnection(URL, username, password);

            } catch (SQLException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }

            return connection;

        }

        public DBUtil() {

            // TODO Auto-generated constructor stub

        }

        public static String getData(String date) {

            JSONArray jsonArray=new JSONArray();

            Connection connection=getConnection();

            String sql="select distinct Province from info where Date like '"+date+"%'";

            String tempprovince="";

            ResultSet rs=null;

            try {

                Statement statement=connection.createStatement();

                rs=statement.executeQuery(sql);

                while(rs.next())

                    tempprovince+=rs.getString("Province")+";";

                rs.close();

                String str[]=tempprovince.split(";");

                for(int i=0;i<str.length;i++) {

                    if(str[i].trim().equals(""))

                        continue;

                    sql="select sum(Confirmed_num),sum(Yisi_num),sum(Cured_num),sum(Dead_num) from info where Date like '"+date+"%' and Province='"+str[i]+"'";

                    rs=statement.executeQuery(sql);

                    rs.next();

                    JSONObject json=new JSONObject();

                    json.put("name", str[i]);

                    json.put("num", rs.getInt(1));

                    json.put("yisi", rs.getString(2));

                    json.put("cure", rs.getString(3));

                    json.put("dead", rs.getString(4));

                    rs.close();

                    sql="select * from info where Date like '"+date+"%' and Province='"+str[i]+"'";

                    rs=statement.executeQuery(sql);

                    rs.next();

                    json.put("code", rs.getString("Code"));

                    rs.close();

                    jsonArray.add(json);

                }

            } catch (SQLException e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }

            return jsonArray.toString();

        }

       

       

    }

    getData.java

    package Servlet;

    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;

    import MyDBUtil.*;

    /**

     * Servlet implementation class getData

     */

    @WebServlet("/getData")

    public class getData extends HttpServlet {

        private static final long serialVersionUID = 1L;

          

        /**

         * @see HttpServlet#HttpServlet()

         */

        public getData() {

            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

            response.getWriter().append("Served at: ").append(request.getContextPath());

        }

        /**

         * @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);

            request.setCharacterEncoding("utf-8");

            response.setContentType("text/html;charset=UTF-8");

            response.getWriter().write(DBUtil.getData(request.getParameter("date")));

        }

    }

    main.html

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

    <link rel="stylesheet" href="layui/css/layui.css">

    <script src="js/echarts.js"></script>

    <script src="js/jquery.js"></script>

    <title>Insert title here</title>

    </head>

    <body>

    <input type="date" name="date"><button>查询</button>

    <div id="main" style=" 100%;height:550px;overflow: auto;"></div>

        <script type="text/javascript">

       

            // 基于准备好的dom,初始化echarts实例

            var myChart = echarts.init(document.getElementById('main'));

            // 指定图表的配置项和数据

          

            myChart.showLoading();

           

            var names=[];

            var nums=[];

            $("button").click(function(){

                $.post(

                    'http://localhost:8080/yiqing/getData',

                    {"date":$("input[name=date]").val()},

                    function(msg){

                        var json=JSON.parse(msg);

                        var size=json.length;

                        for(i=0;i<size;i++){

                            names.push(json[i].name);

                            nums.push(parseInt(json[i].num));

                        }

                   

                        myChart.hideLoading();

                        var option = {

                                title: {

                                    text: $("input[name=date]").val()+'确诊人数'

                                },

                                tooltip: {},

                                legend: {

                                    data:['确诊人数']

                                },

                                xAxis: {

                                    data: names

                                },

                                yAxis: {},

                                series: [{

                                    name: '确诊人数',

                                    type: 'bar',

                                    data: nums

                                }]

                            };

                        myChart.setOption(option);

                        tr="<tr><th>省份</th><th>确诊人数</th><th>疑似人数</th><th>治愈人数</th><th>死亡人数</th><th>编码</th></tr>";

                        $('.head').append(tr);

                        for(i=0;i<size;i++)

                            $('.main').append("<tr></tr>");

                        $('.main tr').each(function(i){

                            $(this).append("<td>"+json[i].name+"</td>");

                            $(this).append("<td>"+json[i].num+"</td>");

                            $(this).append("<td>"+json[i].yisi+"</td>");

                            $(this).append("<td>"+json[i].cure+"</td>");

                            $(this).append("<td>"+json[i].dead+"</td>");

                            $(this).append("<td>"+json[i].code+"</td>");

                        })

                    }

                   

                )

            })

           

        </script>

        <table class="layui-table">

            <thead class="head">

                </thead>

            <tbody class="main"></tbody>

        </table>

    </body>

    </html>

    yiqing.html

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

    <link rel="stylesheet" href="layui/css/layui.css">

    <script src="js/echarts.js"></script>

    <script src="js/jquery.js"></script>

    <title>Insert title here</title>

    </head>

    <body>

    <input type="date" name="date"><button>查询</button>

    <div id="main" style=" 100%;height:550px;overflow: auto;"></div>

        <script type="text/javascript">

       

            // 基于准备好的dom,初始化echarts实例

            var myChart = echarts.init(document.getElementById('main'));

            // 指定图表的配置项和数据

          

            myChart.showLoading();

           

            var names=[];

            var nums=[];

            $("button").click(function(){

                $.post(

                    'http://localhost:8080/yiqing/getData',

                    {"date":$("input[name=date]").val()},

                    function(msg){

                        var json=JSON.parse(msg);

                        var size=json.length;

                        for(i=0;i<size;i++){

                            names.push(json[i].name);

                            nums.push(parseInt(json[i].num));

                        }

                   

                        myChart.hideLoading();

                        var option = {

                                title: {

                                    text: $("input[name=date]").val()+'确诊人数'

                                },

                                tooltip: {},

                                legend: {

                                    data:['确诊人数']

                                },

                                xAxis: {

                                    data: names

                                },

                                yAxis: {},

                                series: [{

                                    name: '确诊人数',

                                    type: 'bar',

                                    data: nums

                                }]

                            };

                        myChart.setOption(option);

                        tr="<tr><th>省份</th><th>确诊人数</th><th>疑似人数</th><th>治愈人数</th><th>死亡人数</th><th>编码</th></tr>";

                        $('.head').append(tr);

                        for(i=0;i<size;i++)

                            $('.main').append("<tr></tr>");

                        $('.main tr').each(function(i){

                            $(this).append("<td>"+json[i].name+"</td>");

                            $(this).append("<td>"+json[i].num+"</td>");

                            $(this).append("<td>"+json[i].yisi+"</td>");

                            $(this).append("<td>"+json[i].cure+"</td>");

                            $(this).append("<td>"+json[i].dead+"</td>");

                            $(this).append("<td>"+json[i].code+"</td>");

                        })

                    }

                   

                )

            })

           

        </script>

        <table class="layui-table">

            <thead class="head">

                </thead>

            <tbody class="main"></tbody>

        </table>

    </body>

    </html>

    效果:

    第二阶段目标:

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

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

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

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

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

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

    代码:

     InfoDao.java

    package com.me.dao;

    import java.sql.SQLException;

    import java.util.List;

    import org.apache.commons.dbutils.QueryRunner;

    import org.apache.commons.dbutils.handlers.BeanHandler;

    import org.apache.commons.dbutils.handlers.BeanListHandler;

    import com.me.domain.Info;

    import com.me.domain.Provinces;

    import com.me.utils.DBUtils;

    public class InfoDao {

        /**

         * @return

         * @throws SQLException

         */

        public List<Info> getList(String date) throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from info1 where date = ?";

            List<Info> query = qr.query(sql, new BeanListHandler<Info>(Info.class),date);

            return query;

        }

        public List<Info> getListT(String date) throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from info1 where date = ? ";

            List<Info> query = qr.query(sql, new BeanListHandler<Info>(Info.class),date);

            return query;

        }

        public List<Info> getListC(String date,String province) throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from info1 where date = ? and province =?";

            List<Info> query = qr.query(sql, new BeanListHandler<Info>(Info.class),date,province);

            return query;

        }

        /**

         * @return

         * @throws SQLException

         */

        public List<Provinces> getList4() throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from provinces";

            List<Provinces> query = qr.query(sql, new BeanListHandler<Provinces>(Provinces.class));

            return query;

        }

        /**

         * @param province

         * @return

         * @throws SQLException

         */

        public Provinces getProvinces(String province) throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from provinces where  name=? ";

            Provinces user01 = qr.query(sql, new BeanHandler<Provinces>(Provinces.class), province);

            return user01;

        }

        /**

         * @param i

         * @return

         * @throws SQLException

         */

        public List<Provinces> getListC2(String id) throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from citys where id like ?";

            List<Provinces> query = qr.query(sql, new BeanListHandler<Provinces>(Provinces.class),id+"%");

            return query;

        }

       

    }

    City.java

    package com.me.domain;

    public class City {

        private String name;

        private int value;

        public String getName() {

            return name;

        }

        public void setName(String name) {

            this.name = name;

        }

        public int getValue() {

            return value;

        }

        public void setValue(int value) {

            this.value = value;

        }

       

    }

    Info.java

    package com.me.domain;

    public class Info {

        private int id;

        private String date;

        private String province;

        private String city;

        private String confirmed_num;

        private String yisi_num;

        private String cured_num;

        private String dead_num;

        private String code;

        public int getId() {

            return id;

        }

        public void setId(int id) {

            this.id = id;

        }

        public String getDate() {

            return date;

        }

        public void setDate(String date) {

            this.date = date;

        }

        public String getProvince() {

            return province;

        }

        public void setProvince(String province) {

            this.province = province;

        }

        public String getCity() {

            return city;

        }

        public void setCity(String city) {

            this.city = city;

        }

        public String getConfirmed_num() {

            return confirmed_num;

        }

        public void setConfirmed_num(String confirmed_num) {

            this.confirmed_num = confirmed_num;

        }

        public String getYisi_num() {

            return yisi_num;

        }

        public void setYisi_num(String yisi_num) {

            this.yisi_num = yisi_num;

        }

        public String getCured_num() {

            return cured_num;

        }

        public void setCured_num(String cured_num) {

            this.cured_num = cured_num;

        }

        public String getDead_num() {

            return dead_num;

        }

        public void setDead_num(String dead_num) {

            this.dead_num = dead_num;

        }

        public String getCode() {

            return code;

        }

        public void setCode(String code) {

            this.code = code;

        }

       

    }

    Province.java

    package com.me.domain;

    public class Provinces {

        private int id;

        private String name;

        private String confirm;

        private String suspect;

        private String heal;

        private String dead;

        private String servere;

        private String lastUpdateTime;

        public int getId() {

            return id;

        }

        public void setId(int id) {

            this.id = id;

        }

        public String getName() {

            return name;

        }

        public void setName(String name) {

            this.name = name;

        }

        public String getConfirm() {

            return confirm;

        }

        public void setConfirm(String confirm) {

            this.confirm = confirm;

        }

        public String getSuspect() {

            return suspect;

        }

        public void setSuspect(String suspect) {

            this.suspect = suspect;

        }

        public String getHeal() {

            return heal;

        }

        public void setHeal(String heal) {

            this.heal = heal;

        }

        public String getDead() {

            return dead;

        }

        public void setDead(String dead) {

            this.dead = dead;

        }

        public String getServere() {

            return servere;

        }

        public void setServere(String servere) {

            this.servere = servere;

        }

        public String getLastUpdateTime() {

            return lastUpdateTime;

        }

        public void setLastUpdateTime(String lastUpdateTime) {

            this.lastUpdateTime = lastUpdateTime;

        }

    }

    InfoServlet.java

    package com.me.servlet;

    import java.io.IOException;

    import java.sql.SQLException;

    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 com.me.dao.InfoDao;

    import com.me.domain.City;

    import com.me.domain.Info;

    import com.me.domain.Provinces;

    @WebServlet("/info")

    public class InfoServlet extends HttpServlet {

        private static final long serialVersionUID = 1L;

        InfoDao dao = new InfoDao();

        public InfoServlet() {

            super();

        }

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            request.setCharacterEncoding("UTF-8");

            response.setCharacterEncoding("UTF-8");

            String method = request.getParameter("method");

            if(method.equals("bg")) {

                try {

                    bg(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("tu")) {

                try {

                    tu(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("city")) {

                try {

                    city(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("d")) {

                try {

                    d(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("yiqing")) {

                try {

                    yiqing(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("city2")) {

                try {

                    city2(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("d2")) {

                try {

                    d2(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }

            //response.getWriter().append("Served at: ").append(request.getContextPath());yiqing

        }

       

        /**

         * @param request

         * @param response

         */

        private void city2(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            // TODO Auto-generated method stub

            String province = request.getParameter("province");

            Provinces provinces = dao.getProvinces(province);

            request.setAttribute("id", provinces.getId());

            request.getRequestDispatcher("city.jsp").forward(request, response);

        }

       

        /**

         * @param request

         * @param response

         */

        private void yiqing(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            List<Provinces> list = dao.getList4();

            Gson gson = new Gson();

            String json = gson.toJson(list);

            request.getSession().setAttribute("list", list);

            response.getWriter().write(json);

        }

        /**

         * @param request

         * @param response

         */

        private void d2(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            String id = request.getParameter("id");

            String id_str = "";

            id_str +=  id.indexOf(0)+id.indexOf(1);

            List<Provinces> list = dao.getListC2(id_str);

            List<City> data = new ArrayList<City>();

            for(int i=0; i<list.size();i++) {

                City city = new City();

                city.setName(list.get(i).getName());

                city.setValue(Integer.parseInt(list.get(i).getConfirm()));

                data.add(city);

            }

            Gson gson = new Gson();

            String json = gson.toJson(data);

            System.out.println(json);

            response.getWriter().write(json);

        }

       

        /**

         * @param request

         * @param response

         */

        private void d(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            // TODO Auto-generated method stub

            String province = request.getParameter("province");

            String time = "2020-02-12 10:14:15";

            List<Info> list = dao.getListC(time,province);

            List<City> data = new ArrayList<City>();

            for(int i=1; i<list.size();i++) {

                City city = new City();

                city.setName(list.get(i).getCity());

                city.setValue(Integer.parseInt(list.get(i).getConfirmed_num()));

                data.add(city);

            }

            Gson gson = new Gson();

            String json = gson.toJson(data);

            System.out.println(json);

            response.getWriter().write(json);

        }

        /**

         * @param request

         * @param response

         */

        private void city(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            // TODO Auto-generated method stub

            String province = request.getParameter("province");

            String time = "2020-02-12 10:14:15";

            List<Info> list = dao.getListC(time,province);

            List<City> data = new ArrayList<City>();

            for(int i=1; i<list.size();i++) {

                City city = new City();

                city.setName(list.get(i).getCity());

                city.setValue(Integer.parseInt(list.get(i).getConfirmed_num()));

                data.add(city);

            }

            Gson gson = new Gson();

            String json = gson.toJson(data);

            System.out.println(json);

            request.setAttribute("list", json);

            request.setAttribute("province", province);

            request.getRequestDispatcher("city.jsp").forward(request, response);

        }

        /**

         * @param request

         * @param response

         */

        private void tu(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            String time = request.getParameter("time");

            List<Info> list = dao.getListT(time);

            Gson gson = new Gson();

            String json = gson.toJson(list);

            //System.out.println(json);

            request.getSession().setAttribute("list", list);

            response.getWriter().write(json);

        }

        /**

         * @param request

         * @param response

         * @throws SQLException

         * @throws IOException

         * @throws ServletException

         */

        private void bg(HttpServletRequest request, HttpServletResponse response) throws SQLException, ServletException, IOException {

            String time = request.getParameter("time");

            List<Info> list = dao.getList(time);

            request.setAttribute("list", list);

            if(list!=null) {

                System.out.println(list.get(0).getDate());

                request.getRequestDispatcher("di.jsp").forward(request, response);

            }else {

                request.getRequestDispatcher("index.jsp").forward(request, response);

            }

        }

        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            doGet(request, response);

        }

    }

    ProvinceServlet.java

    package com.me.servlet;

    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;

    @WebServlet("/province")

    public class ProvinceServlet extends HttpServlet {

        private static final long serialVersionUID = 1L;

          

        public ProvinceServlet() {

            super();

        }

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            request.setCharacterEncoding("UTF-8");

            String method = request.getParameter("method");

           

            //response.getWriter().append("Served at: ").append(request.getContextPath());

        }

        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            doGet(request, response);

        }

    }

    DBUtils.java

    package com.me.utils;

    import java.sql.Connection;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import javax.sql.DataSource;

    import com.mchange.v2.c3p0.ComboPooledDataSource;

    public class DBUtils {

        private static DataSource dataSource = new ComboPooledDataSource();

        private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();

        public static DataSource getDataSource() {

            return dataSource;

        }

       

        public static Connection getConnection() throws SQLException{

            return dataSource.getConnection();

        }

       

        public static Connection getCurrentConnection() throws SQLException {

            Connection con = tl.get();

            if (con == null) {

                con = dataSource.getConnection();

                tl.set(con);

            }

            return con;

        }

        public static void startTransaction() throws SQLException {

            Connection con = getCurrentConnection();

            if (con != null) {

                con.setAutoCommit(false);

            }

        }

        // 浜嬪姟鍥炴粴

        public static void rollback() throws SQLException {

            Connection con = getCurrentConnection();

            if (con != null) {

                con.rollback();

            }

        }

       

        public static void commitAndRelease() throws SQLException {

            Connection con = getCurrentConnection();

            if (con != null) {

                con.commit();

                con.close();

                tl.remove();

            }

        }

        public static void closeConnection() throws SQLException {

            Connection con = getCurrentConnection();

            if (con != null) {

                con.close();

            }

        }

        public static void closeStatement(Statement st) throws SQLException {

            if (st != null) {

                st.close();

            }

        }

        public static void closeResultSet(ResultSet rs) throws SQLException {

            if (rs != null) {

                rs.close();

            }

        }

    }

    c3p0-config.xml

    <?xml version="1.0" encoding="UTF-8" ?>

    <c3p0-config>

        <default-config>

            <property name="user">root</property>

            <property name="password">0608</property>

            <property name="driverClass">com.mysql.cj.jdbc.Driver</property>

            <property name="jdbcUrl">jdbc:mysql:///payiqing?serverTimezone=UTC</property>

        </default-config>

    </c3p0-config>

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

    yiqing2.jsp

    <!DOCTYPE html>

    <html style="height: 100%">

    <head>

    <meta charset="utf-8">

    <base>

    <title>地图</title>

    <script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>

    <script type="text/javascript" src="js/echarts.min.js"></script>

    <script type="text/javascript" src="js/china.js"></script>

    </head>

    <body style="height: 100%; margin: 0">

        <div id="main" style="height: 100%"></div>

    </body>

    <script type="text/javascript">

        var dt;

        var mydata1 = new Array(0);

        $(function(){

            $.ajax({

                url : "info?method=yiqing",

                async : false,

                type : "POST",

                success : function(data) {

                    dt = data;

                    for (var i = 0; i < 33; i++) {

                        var d = {

                           

                        };

                       

                        d["name"] = dt[i].name;//.substring(0, 2);

                        d["value"] = dt[i].confirm;

                        d["yisi_num"] = dt[i].suspect;

                        d["cured_num"] = dt[i].heal;

                        d["dead_num"] = dt[i].dead;

                        mydata1.push(d);

                    }

                   

                    //var mdata = JSON.stringify(mydata1);

                    var optionMap = {

                        backgroundColor : '#FFFFFF',

                        title : {

                            text : '全国地图大数据',

                            subtext : '',

                            x : 'center'

                        },

                        tooltip : {

                            formatter : function(params) {

                                return params.name + '<br/>' + '确诊人数 : '

                                        + params.value + '<br/>' + '死亡人数 : '

                                        + params['data'].dead_num + '<br/>' + '治愈人数 : '

                                        + params['data'].cured_num + '<br/>'+ '疑似患者人数 : '

                                        + params['data'].yisi_num;

                            }//数据格式化

                        },

                        //左侧小导航图标

                        visualMap : {

                            min : 0,

                            max : 70000,

                            text : [ '多', '少' ],

                            realtime : false,

                            calculable : true,

                            inRange : {

                                color : [ 'lightskyblue', 'yellow', 'orangered' ]

                            }

                        },

                        //配置属性

                        series : [ {

                            type : 'map',

                            mapType : 'china',

                            label : {

                                show : true

                            },

                            data : mydata1

                        } ]

                    };

                    //初始化echarts实例

                    var myChart = echarts.init(document.getElementById('main'));

                    //使用制定的配置项和数据显示图表

                    myChart.setOption(optionMap);

                },

                error : function() {

                    alert("请求失败");

                },

                dataType : "json"

            });

        });

    </script>

    </html>

    yiqing3.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

    <!DOCTYPE html>

    <html style="height: 100%">

    <head>

    <meta charset="utf-8">

    <base>

    <title>地图阶段二</title>

    <script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>

    <script type="text/javascript" src="js/echarts.min.js"></script>

    <script type="text/javascript" src="js/china.js"></script>

    </head>

    <body style="height: 100%; margin: 0">

        <div id="main" style="height: 100%"></div>

    </body>

    <script type="text/javascript">

        var dt;

        var mydata1 = new Array(0);

        $(function(){

            $.ajax({

                url : "info?method=yiqing",

                async : false,

                type : "POST",

                success : function(data) {

                    dt = data;

                    for (var i = 0; i < 33; i++) {

                        var d = {

                           

                        };

                       

                        d["name"] = dt[i].name;//.substring(0, 2);

                        d["value"] = dt[i].confirm;

                        d["yisi_num"] = dt[i].suspect;

                        d["cured_num"] = dt[i].heal;

                        d["dead_num"] = dt[i].dead;

                        mydata1.push(d);

                    }

                   

                    //var mdata = JSON.stringify(mydata1);

                    var optionMap = {

                        backgroundColor : '#FFFFFF',

                        title : {

                            text : '全国地图大数据',

                            subtext : '',

                            x : 'center'

                        },

                        tooltip : {

                            formatter : function(params) {

                                return params.name + '<br/>' + '确诊人数 : '

                                        + params.value + '<br/>' + '死亡人数 : '

                                        + params['data'].dead_num + '<br/>' + '治愈人数 : '

                                        + params['data'].cured_num + '<br/>'+ '疑似患者人数 : '

                                        + params['data'].yisi_num;

                            }//数据格式化

                        },

                        //左侧小导航图标

                        visualMap : {

                            min : 0,

                            max : 70000,

                            text : [ '多', '少' ],

                            realtime : false,

                            calculable : true,

                            inRange : {

                                color : [ 'lightskyblue', 'yellow', 'orangered' ]

                            }

                        },

                        //配置属性

                        series : [ {

                            type : 'map',

                            mapType : 'china',

                            label : {

                                show : true

                            },

                            data : mydata1

                        } ]

                    };

                    //初始化echarts实例

                    var myChart = echarts.init(document.getElementById('main'));

                    myChart.on('click', function (params) {

                         var url = "info?method=city2&province=" + params.name;

                         window.location.href = url;

                    });

                    //使用制定的配置项和数据显示图表

                    myChart.setOption(optionMap);

                },

                error : function() {

                    alert("请求失败");

                },

                dataType : "json"

            });

        });

    </script>

    </html>

    截图:

    第二阶段目标:

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

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

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

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

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

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

    代码:

     InfoDao.java

    package com.me.dao;

    import java.sql.SQLException;

    import java.util.List;

    import org.apache.commons.dbutils.QueryRunner;

    import org.apache.commons.dbutils.handlers.BeanHandler;

    import org.apache.commons.dbutils.handlers.BeanListHandler;

    import com.me.domain.Info;

    import com.me.domain.Provinces;

    import com.me.utils.DBUtils;

    public class InfoDao {

        /**

         * @return

         * @throws SQLException

         */

        public List<Info> getList(String date) throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from info1 where date = ?";

            List<Info> query = qr.query(sql, new BeanListHandler<Info>(Info.class),date);

            return query;

        }

        public List<Info> getListT(String date) throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from info1 where date = ? ";

            List<Info> query = qr.query(sql, new BeanListHandler<Info>(Info.class),date);

            return query;

        }

        public List<Info> getListC(String date,String province) throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from info1 where date = ? and province =?";

            List<Info> query = qr.query(sql, new BeanListHandler<Info>(Info.class),date,province);

            return query;

        }

        /**

         * @return

         * @throws SQLException

         */

        public List<Provinces> getList4() throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from provinces";

            List<Provinces> query = qr.query(sql, new BeanListHandler<Provinces>(Provinces.class));

            return query;

        }

        /**

         * @param province

         * @return

         * @throws SQLException

         */

        public Provinces getProvinces(String province) throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from provinces where  name=? ";

            Provinces user01 = qr.query(sql, new BeanHandler<Provinces>(Provinces.class), province);

            return user01;

        }

        /**

         * @param i

         * @return

         * @throws SQLException

         */

        public List<Provinces> getListC2(String id) throws SQLException {

            QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

            String sql = "select * from citys where id like ?";

            List<Provinces> query = qr.query(sql, new BeanListHandler<Provinces>(Provinces.class),id+"%");

            return query;

        }

       

    }

    City.java

    package com.me.domain;

    public class City {

        private String name;

        private int value;

        public String getName() {

            return name;

        }

        public void setName(String name) {

            this.name = name;

        }

        public int getValue() {

            return value;

        }

        public void setValue(int value) {

            this.value = value;

        }

       

    }

    Info.java

    package com.me.domain;

    public class Info {

        private int id;

        private String date;

        private String province;

        private String city;

        private String confirmed_num;

        private String yisi_num;

        private String cured_num;

        private String dead_num;

        private String code;

        public int getId() {

            return id;

        }

        public void setId(int id) {

            this.id = id;

        }

        public String getDate() {

            return date;

        }

        public void setDate(String date) {

            this.date = date;

        }

        public String getProvince() {

            return province;

        }

        public void setProvince(String province) {

            this.province = province;

        }

        public String getCity() {

            return city;

        }

        public void setCity(String city) {

            this.city = city;

        }

        public String getConfirmed_num() {

            return confirmed_num;

        }

        public void setConfirmed_num(String confirmed_num) {

            this.confirmed_num = confirmed_num;

        }

        public String getYisi_num() {

            return yisi_num;

        }

        public void setYisi_num(String yisi_num) {

            this.yisi_num = yisi_num;

        }

        public String getCured_num() {

            return cured_num;

        }

        public void setCured_num(String cured_num) {

            this.cured_num = cured_num;

        }

        public String getDead_num() {

            return dead_num;

        }

        public void setDead_num(String dead_num) {

            this.dead_num = dead_num;

        }

        public String getCode() {

            return code;

        }

        public void setCode(String code) {

            this.code = code;

        }

       

    }

    Province.java

    package com.me.domain;

    public class Provinces {

        private int id;

        private String name;

        private String confirm;

        private String suspect;

        private String heal;

        private String dead;

        private String servere;

        private String lastUpdateTime;

        public int getId() {

            return id;

        }

        public void setId(int id) {

            this.id = id;

        }

        public String getName() {

            return name;

        }

        public void setName(String name) {

            this.name = name;

        }

        public String getConfirm() {

            return confirm;

        }

        public void setConfirm(String confirm) {

            this.confirm = confirm;

        }

        public String getSuspect() {

            return suspect;

        }

        public void setSuspect(String suspect) {

            this.suspect = suspect;

        }

        public String getHeal() {

            return heal;

        }

        public void setHeal(String heal) {

            this.heal = heal;

        }

        public String getDead() {

            return dead;

        }

        public void setDead(String dead) {

            this.dead = dead;

        }

        public String getServere() {

            return servere;

        }

        public void setServere(String servere) {

            this.servere = servere;

        }

        public String getLastUpdateTime() {

            return lastUpdateTime;

        }

        public void setLastUpdateTime(String lastUpdateTime) {

            this.lastUpdateTime = lastUpdateTime;

        }

    }

    InfoServlet.java

    package com.me.servlet;

    import java.io.IOException;

    import java.sql.SQLException;

    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 com.me.dao.InfoDao;

    import com.me.domain.City;

    import com.me.domain.Info;

    import com.me.domain.Provinces;

    @WebServlet("/info")

    public class InfoServlet extends HttpServlet {

        private static final long serialVersionUID = 1L;

        InfoDao dao = new InfoDao();

        public InfoServlet() {

            super();

        }

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            request.setCharacterEncoding("UTF-8");

            response.setCharacterEncoding("UTF-8");

            String method = request.getParameter("method");

            if(method.equals("bg")) {

                try {

                    bg(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("tu")) {

                try {

                    tu(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("city")) {

                try {

                    city(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("d")) {

                try {

                    d(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("yiqing")) {

                try {

                    yiqing(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("city2")) {

                try {

                    city2(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }else if(method.equals("d2")) {

                try {

                    d2(request, response);

                } catch (SQLException e) {

                    e.printStackTrace();

                }

            }

            //response.getWriter().append("Served at: ").append(request.getContextPath());yiqing

        }

       

        /**

         * @param request

         * @param response

         */

        private void city2(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            // TODO Auto-generated method stub

            String province = request.getParameter("province");

            Provinces provinces = dao.getProvinces(province);

            request.setAttribute("id", provinces.getId());

            request.getRequestDispatcher("city.jsp").forward(request, response);

        }

       

        /**

         * @param request

         * @param response

         */

        private void yiqing(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            List<Provinces> list = dao.getList4();

            Gson gson = new Gson();

            String json = gson.toJson(list);

            request.getSession().setAttribute("list", list);

            response.getWriter().write(json);

        }

        /**

         * @param request

         * @param response

         */

        private void d2(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            String id = request.getParameter("id");

            String id_str = "";

            id_str +=  id.indexOf(0)+id.indexOf(1);

            List<Provinces> list = dao.getListC2(id_str);

            List<City> data = new ArrayList<City>();

            for(int i=0; i<list.size();i++) {

                City city = new City();

                city.setName(list.get(i).getName());

                city.setValue(Integer.parseInt(list.get(i).getConfirm()));

                data.add(city);

            }

            Gson gson = new Gson();

            String json = gson.toJson(data);

            System.out.println(json);

            response.getWriter().write(json);

        }

       

        /**

         * @param request

         * @param response

         */

        private void d(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            // TODO Auto-generated method stub

            String province = request.getParameter("province");

            String time = "2020-02-12 10:14:15";

            List<Info> list = dao.getListC(time,province);

            List<City> data = new ArrayList<City>();

            for(int i=1; i<list.size();i++) {

                City city = new City();

                city.setName(list.get(i).getCity());

                city.setValue(Integer.parseInt(list.get(i).getConfirmed_num()));

                data.add(city);

            }

            Gson gson = new Gson();

            String json = gson.toJson(data);

            System.out.println(json);

            response.getWriter().write(json);

        }

        /**

         * @param request

         * @param response

         */

        private void city(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            // TODO Auto-generated method stub

            String province = request.getParameter("province");

            String time = "2020-02-12 10:14:15";

            List<Info> list = dao.getListC(time,province);

            List<City> data = new ArrayList<City>();

            for(int i=1; i<list.size();i++) {

                City city = new City();

                city.setName(list.get(i).getCity());

                city.setValue(Integer.parseInt(list.get(i).getConfirmed_num()));

                data.add(city);

            }

            Gson gson = new Gson();

            String json = gson.toJson(data);

            System.out.println(json);

            request.setAttribute("list", json);

            request.setAttribute("province", province);

            request.getRequestDispatcher("city.jsp").forward(request, response);

        }

        /**

         * @param request

         * @param response

         */

        private void tu(HttpServletRequest request, HttpServletResponse response)throws SQLException, ServletException, IOException {

            String time = request.getParameter("time");

            List<Info> list = dao.getListT(time);

            Gson gson = new Gson();

            String json = gson.toJson(list);

            //System.out.println(json);

            request.getSession().setAttribute("list", list);

            response.getWriter().write(json);

        }

        /**

         * @param request

         * @param response

         * @throws SQLException

         * @throws IOException

         * @throws ServletException

         */

        private void bg(HttpServletRequest request, HttpServletResponse response) throws SQLException, ServletException, IOException {

            String time = request.getParameter("time");

            List<Info> list = dao.getList(time);

            request.setAttribute("list", list);

            if(list!=null) {

                System.out.println(list.get(0).getDate());

                request.getRequestDispatcher("di.jsp").forward(request, response);

            }else {

                request.getRequestDispatcher("index.jsp").forward(request, response);

            }

        }

        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            doGet(request, response);

        }

    }

    ProvinceServlet.java

    package com.me.servlet;

    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;

    @WebServlet("/province")

    public class ProvinceServlet extends HttpServlet {

        private static final long serialVersionUID = 1L;

          

        public ProvinceServlet() {

            super();

        }

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            request.setCharacterEncoding("UTF-8");

            String method = request.getParameter("method");

           

            //response.getWriter().append("Served at: ").append(request.getContextPath());

        }

        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            doGet(request, response);

        }

    }

    DBUtils.java

    package com.me.utils;

    import java.sql.Connection;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import javax.sql.DataSource;

    import com.mchange.v2.c3p0.ComboPooledDataSource;

    public class DBUtils {

        private static DataSource dataSource = new ComboPooledDataSource();

        private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();

        public static DataSource getDataSource() {

            return dataSource;

        }

       

        public static Connection getConnection() throws SQLException{

            return dataSource.getConnection();

        }

       

        public static Connection getCurrentConnection() throws SQLException {

            Connection con = tl.get();

            if (con == null) {

                con = dataSource.getConnection();

                tl.set(con);

            }

            return con;

        }

        public static void startTransaction() throws SQLException {

            Connection con = getCurrentConnection();

            if (con != null) {

                con.setAutoCommit(false);

            }

        }

        // 浜嬪姟鍥炴粴

        public static void rollback() throws SQLException {

            Connection con = getCurrentConnection();

            if (con != null) {

                con.rollback();

            }

        }

       

        public static void commitAndRelease() throws SQLException {

            Connection con = getCurrentConnection();

            if (con != null) {

                con.commit();

                con.close();

                tl.remove();

            }

        }

        public static void closeConnection() throws SQLException {

            Connection con = getCurrentConnection();

            if (con != null) {

                con.close();

            }

        }

        public static void closeStatement(Statement st) throws SQLException {

            if (st != null) {

                st.close();

            }

        }

        public static void closeResultSet(ResultSet rs) throws SQLException {

            if (rs != null) {

                rs.close();

            }

        }

    }

    c3p0-config.xml

    <?xml version="1.0" encoding="UTF-8" ?>

    <c3p0-config>

        <default-config>

            <property name="user">root</property>

            <property name="password">0608</property>

            <property name="driverClass">com.mysql.cj.jdbc.Driver</property>

            <property name="jdbcUrl">jdbc:mysql:///payiqing?serverTimezone=UTC</property>

        </default-config>

    </c3p0-config>

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

    yiqing2.jsp

    <!DOCTYPE html>

    <html style="height: 100%">

    <head>

    <meta charset="utf-8">

    <base>

    <title>地图</title>

    <script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>

    <script type="text/javascript" src="js/echarts.min.js"></script>

    <script type="text/javascript" src="js/china.js"></script>

    </head>

    <body style="height: 100%; margin: 0">

        <div id="main" style="height: 100%"></div>

    </body>

    <script type="text/javascript">

        var dt;

        var mydata1 = new Array(0);

        $(function(){

            $.ajax({

                url : "info?method=yiqing",

                async : false,

                type : "POST",

                success : function(data) {

                    dt = data;

                    for (var i = 0; i < 33; i++) {

                        var d = {

                           

                        };

                       

                        d["name"] = dt[i].name;//.substring(0, 2);

                        d["value"] = dt[i].confirm;

                        d["yisi_num"] = dt[i].suspect;

                        d["cured_num"] = dt[i].heal;

                        d["dead_num"] = dt[i].dead;

                        mydata1.push(d);

                    }

                   

                    //var mdata = JSON.stringify(mydata1);

                    var optionMap = {

                        backgroundColor : '#FFFFFF',

                        title : {

                            text : '全国地图大数据',

                            subtext : '',

                            x : 'center'

                        },

                        tooltip : {

                            formatter : function(params) {

                                return params.name + '<br/>' + '确诊人数 : '

                                        + params.value + '<br/>' + '死亡人数 : '

                                        + params['data'].dead_num + '<br/>' + '治愈人数 : '

                                        + params['data'].cured_num + '<br/>'+ '疑似患者人数 : '

                                        + params['data'].yisi_num;

                            }//数据格式化

                        },

                        //左侧小导航图标

                        visualMap : {

                            min : 0,

                            max : 70000,

                            text : [ '多', '少' ],

                            realtime : false,

                            calculable : true,

                            inRange : {

                                color : [ 'lightskyblue', 'yellow', 'orangered' ]

                            }

                        },

                        //配置属性

                        series : [ {

                            type : 'map',

                            mapType : 'china',

                            label : {

                                show : true

                            },

                            data : mydata1

                        } ]

                    };

                    //初始化echarts实例

                    var myChart = echarts.init(document.getElementById('main'));

                    //使用制定的配置项和数据显示图表

                    myChart.setOption(optionMap);

                },

                error : function() {

                    alert("请求失败");

                },

                dataType : "json"

            });

        });

    </script>

    </html>

    yiqing3.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"

        pageEncoding="UTF-8"%>

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

    <!DOCTYPE html>

    <html style="height: 100%">

    <head>

    <meta charset="utf-8">

    <base>

    <title>地图阶段二</title>

    <script src="js/jquery-1.11.3.min.js" type="text/javascript"></script>

    <script type="text/javascript" src="js/echarts.min.js"></script>

    <script type="text/javascript" src="js/china.js"></script>

    </head>

    <body style="height: 100%; margin: 0">

        <div id="main" style="height: 100%"></div>

    </body>

    <script type="text/javascript">

        var dt;

        var mydata1 = new Array(0);

        $(function(){

            $.ajax({

                url : "info?method=yiqing",

                async : false,

                type : "POST",

                success : function(data) {

                    dt = data;

                    for (var i = 0; i < 33; i++) {

                        var d = {

                           

                        };

                       

                        d["name"] = dt[i].name;//.substring(0, 2);

                        d["value"] = dt[i].confirm;

                        d["yisi_num"] = dt[i].suspect;

                        d["cured_num"] = dt[i].heal;

                        d["dead_num"] = dt[i].dead;

                        mydata1.push(d);

                    }

                   

                    //var mdata = JSON.stringify(mydata1);

                    var optionMap = {

                        backgroundColor : '#FFFFFF',

                        title : {

                            text : '全国地图大数据',

                            subtext : '',

                            x : 'center'

                        },

                        tooltip : {

                            formatter : function(params) {

                                return params.name + '<br/>' + '确诊人数 : '

                                        + params.value + '<br/>' + '死亡人数 : '

                                        + params['data'].dead_num + '<br/>' + '治愈人数 : '

                                        + params['data'].cured_num + '<br/>'+ '疑似患者人数 : '

                                        + params['data'].yisi_num;

                            }//数据格式化

                        },

                        //左侧小导航图标

                        visualMap : {

                            min : 0,

                            max : 70000,

                            text : [ '多', '少' ],

                            realtime : false,

                            calculable : true,

                            inRange : {

                                color : [ 'lightskyblue', 'yellow', 'orangered' ]

                            }

                        },

                        //配置属性

                        series : [ {

                            type : 'map',

                            mapType : 'china',

                            label : {

                                show : true

                            },

                            data : mydata1

                        } ]

                    };

                    //初始化echarts实例

                    var myChart = echarts.init(document.getElementById('main'));

                    myChart.on('click', function (params) {

                         var url = "info?method=city2&province=" + params.name;

                         window.location.href = url;

                    });

                    //使用制定的配置项和数据显示图表

                    myChart.setOption(optionMap);

                },

                error : function() {

                    alert("请求失败");

                },

                dataType : "json"

            });

        });

    </script>

    </html>

    截图:

  • 相关阅读:
    P1121 环状最大两段子段和
    (转)背包9讲
    P1115 最大子段和
    P1108 低价购买
    P1103 书本整理
    P1095 守望者的逃离
    P1091 合唱队形
    P1077 摆花
    hadoop记录topk
    楼天城楼教主的acm心路历程(作为励志用)
  • 原文地址:https://www.cnblogs.com/ICDTAD/p/13110789.html
Copyright © 2011-2022 走看看