zoukankan      html  css  js  c++  java
  • 结对作业之疫情地图 3

    //获取疫情数据
    
    $.ajax({
        url:"https://news.sina.com.cn/project/fymap/ncp2020_full_data.json",
        dataType:"jsonp",
        jsonpCallback:"jsoncallback",
        success:function(res){
             //1、获取数据
            var allData = res.data;
            var historylist = allData.historylist;
            console.log(res);
            //2、设置更新时间
            $(".time span").html(allData.cachetime);
            //3、设置详情信息
            (function(){
                var infoConfig={
                    "cn_econNum":{
                        "title":"现有确诊",
                        "color":"#ff5e49",
                    },
                    "cn_asymptomNum":{
                        "title":"无症状",
                        "color":"#fe653b"
                    },
                    "cn_susNum":{
                        "title":"现有疑似",
                        "color":"#fe8d00"
                    },
                    "cn_heconNum":{
                        "title":"现有重症",
                        "color":"#525498"
                    },
                    "cn_conNum":{
                        "title":"累计确诊",
                        "color":"#ff0910"
                    },
                    "cn_jwsrNum":{
                        "title":"境外输入",
                        "color":"#356ea0"
                    },
                    "cn_cureNum":{
                        "title":"累积治愈",
                        "color":"#00b1b7"
                    },
                    "cn_deathNum":{
                        "title":"累计死亡",
                        "color":"#4c5054"
                    }
                }
                var htmlStr = "";
                for(var k in infoConfig){
                    var value  = historylist[0][k] - historylist[1][k];
                    htmlStr += `<li>
                                    <h5>${infoConfig[k].title}</h5>
                                    <p style = "color:${infoConfig[k].color}">${historylist[0][k]}</p>
                                    <span>
                                        <em>昨日</em>
                                        <i style = "color:${infoConfig[k].color}">
                                            ${value > 0? "+" + value :value}
                                        </i>
                                    </span>
                                </li>`
                }
                $(".info").html(htmlStr)
            })();
    
            //4、设置中国疫情地图
            (function(){
                //获取数据
                var list = allData.list;
                //分别存储当前确诊和累计确诊人数
                var nowList = [];
                var allList = [];
                list.forEach(function(element){
                    nowList.push({
                        name:element.name,
                        value:element.econNum
                    });
                    allList.push({
                        name:element.name,
                        value:element.value
                    })
                    
                })
                
                var china_map =echarts.init(document.querySelector(".china_map .content"));
                var option ={
                    geo:{
                        map:"china",
                        itemStyle: {
                            areaColor: "#fff",
                            borderColor: "#666",
                            borderWidth: "0.3",
                            opacity: 1
                        },
                        label: {
                            show:true,
                            textStyle: {
                                color: "#000",
                                fontSize: 8,
                                fontWeight: 700
                            },
                        },
                        emphasis: {
                           itemStyle: {
                               areaColor: "#b4ffff",
                           } 
                        },
                        select: {
                            itemStyle: {
                                areaColor: "#b4ffff",
                            }
                        }
                    },
                    series: [
                        {
                            type: "map",
                            geoIndex: 0,
                            data: nowList
                        }
                    ],   
                    visualMap: {
                        type: 'piecewise',
                        pieces: [
                            {min: 0, max: 0, label: '0', color: '#fff' },
                            {min: 1, max:9, label: '1-9', color: '#ffe4da' },
                            {min: 10, max:99, label: '10-99', color: '#ff937f' },
                            {min: 100, max:999, label: '100-999', color: '#ff6c5e' },
                            {min: 1000, max:9999, label: '1000-9999', color: '#fe3335' },
                            {min: 10000, label: '>=10000', color: '#cd0000' },
                        ],
                        itemWidth:10,
                        itemHeight:10,
                        itemGap:2,
                        inverse: false
                    },
                    tooltip:{
                        show:true,
                        formatter: function (param) {
                            return `<section style="display:flex;align-items:center;position:relative;z-
                            index:9999">
                                <div style="padding:0px 10px;font-size:12px;">地区:
                                ${param.name}<br></br>确诊: ${param.value}</div>
                                <a style="display:flex; 
                                align-items:center;
                                height:30px;
                                border-left:1px solid #fff;
                                padding-left:8px;
                                color:#fff;
                                font-size:12px"
                                href="#">详情 </a>
                            </section>`;
                        },
                        padding: 3,
                        borderColor: '#333',
                        enterable: true,
                        backgroundColor: "rgba(50, 50, 50, 0.7)",
                        textStyle: {
                            color: "#fff",
                        },
                        triggerOn:'mousemove'
                    }
                };
                china_map.setOption(option);
                
                // //设置地图下钻
                // china_map.on('click',params=>{
                //     console.log("onclick"+params.name);
                // })
    
                 //根据窗口的大小变动图表 
                 window.addEventListener('resize', function () {
                    china_map.resize()
                  })
                  
                //设置地图切换效果
                $(".china_map nav a").click(function(){
                    $(".china_map nav a").toggleClass("active");
                    //切换option中series中得data属性
                    option.series[0].data = $(this).index() == 0 ? nowList : allList;
                    china_map.setOption(option)
                })
            })();
        }
    })
    

      

    运行效果图:

     

  • 相关阅读:
    postman简单传参,上个接口的返回值作为下个接口的入参。
    python 给定URL 如何获取其内容,并将其保存至HTML文档。
    外键关联on_delete参数含义
    excel导入与导出
    序列化关系
    使用框架的各种代码示例
    国产celery简单使用
    selecte_related 函数优化查询
    django 之 配置文件
    类与缓存问题 类与属性的关系
  • 原文地址:https://www.cnblogs.com/ltw222/p/14913956.html
Copyright © 2011-2022 走看看