哈利路亚
Let's take one million years picnic
欢迎来到Sean Cleveland的博客
软工试水日报-世界地图绘制及数据装载 3/24

昨天我们成功爬取到了世界疫情的数据,那么今天我们就要来绘制世界地图啦!

    function World(){
        changeplace("全球");
        var tab= document.getElementById("demo");
        for( var i=0;i<tab.rows.length;){
                  tab.deleteRow(0);   
        }
        for(var i = 0;i < alldata.length&&i<3680; i++){
            if(alldata[i].date=="<%=dao.today()%>")
            {dogo(alldata[i].name,alldata[i].date,alldata[i].NowConfirm,alldata[i].ConfirmAdd,alldata[i].Confirm);}
        }
        option = {
            title : {
                text: '世界疫情数据地图',
                left: 'center'
            },
            tooltip : {
                trigger: 'item',
                
            },
            legend: {
                orient: 'vertical',
                selectedMode:'single',
                left: 'left',
                data:['累计确诊人数','现存病例','今日新增','疑似感染者']
                
            },
            visualMap: {
                type: 'piecewise',
                pieces: [
                    { min: 1000000, max: 100000000, label: '>=10000', color: '#550101' },
                    { min: 100000, max: 999999, label: '100000-999999', color: '#a92919' },
                    { min: 50000, max: 99999, label: '50000-99999', color: '#af4e41' },
                    { min: 10000, max: 49999, label: '10000-49999', color: '#ee7263' },
                    { min: 1000, max: 9999, label: '1000-9999', color: '#f5bba7' },
                    { min: 1, max: 999, label: '1-999', color: '#fdf2d5' },
                ],
                color: ['#E0022B', '#E09107', '#A3E00B']   
            },
            toolbox: {
                show: true,
                orient : 'vertical',
                left: 'right',
                top: 'center',
                
                feature : {
                    mark : {show: true},
                    saveAsImage : {show: true}
                }
            },
            series : [
                {
                    name: '累计确诊人数',
                    type: 'map',
                    mapType: 'world',
                    roam: false,
                    label: {
                        normal: {
                            show:false
                        },
                        emphasis: {
                            show:true
                        }
                    },
                    data:nowconfirm
                },
                {
                    name: '现存病例',
                    type: 'map',
                    mapType: 'world',
                    label: {
                        normal: {
                            show:false
                        },
                        emphasis: {
                            show:true
                        }
                    },
                    data:untilnow
                },
                {
                    name: '今日新增',
                    type: 'map',
                    mapType: 'world',
                    roam: false,
                    label: {
                        normal: {
                            show:false
                        },
                        emphasis: {
                            show:true
                        }
                    },
                    data:confirm
                },
                {
                    name: '疑似感染者',
                    type: 'map',
                    mapType: 'world',
                    label: {
                        normal: {
                            show:false
                        },
                        emphasis: {
                            show:true
                        }
                    },
                    data:suspect
                }
            ]
        };
        
        option && myChart.setOption(option);
        
        myChart.on('click', function (params) {          //点击事件
            var str_p = params.data.name;
            console.log(str_p);
            Country(str_p);
        });
        
    }

这样就可以显示如下的世界地图

 

 

 但我们明明填入了数据,为什么还是白色的呢?

那是因为世界地图的国家名都是英文,而我们爬取的数据都是明明白白的中文

 

 

这时候我们就需要另一组数据:

let nameMap = {
        Afghanistan: '阿富汗',
        Singapore: '新加坡',
        Angola: '安哥拉',
        Albania: '阿尔巴尼亚',
        'United Arab Emirates': '阿联酋',
        Argentina: '阿根廷',
        Armenia: '亚美尼亚',
        'French Southern and Antarctic Lands':
            '法属南半球和南极领地',
        Australia: '澳大利亚',
        Austria: '奥地利',
        Azerbaijan: '阿塞拜疆',
        Burundi: '布隆迪',
        Belgium: '比利时',
        Benin: '贝宁',
        'Burkina Faso': '布基纳法索',
        Bangladesh: '孟加拉',
        Bulgaria: '保加利亚',
        'The Bahamas': '巴哈马',
        'Bosnia and Herzegovina': '波斯尼亚和黑塞哥维那',
        Belarus: '白俄罗斯',
        Belize: '伯利兹',
        Bermuda: '百慕大',
        Bolivia: '玻利维亚',
        Brazil: '巴西',
        Brunei: '文莱',
        Bhutan: '不丹',
        Botswana: '博茨瓦纳',
        'Central African Republic': '中非共和国',
        Canada: '加拿大',
        Switzerland: '瑞士',
        Chile: '智利',
        China: '中国',
        'Ivory Coast': '象牙海岸',
        Cameroon: '喀麦隆',
        Colombia: '哥伦比亚',
        'Costa Rica': '哥斯达黎加',
        Cuba: '古巴',
        'Northern Cyprus': '北塞浦路斯',
        Cyprus: '塞浦路斯',
        'Czech Republic': '捷克共和国',
        Germany: '德国',
        Djibouti: '吉布提',
        Denmark: '丹麦',
        'Dominican Republic': '多明尼加共和国',
        Algeria: '阿尔及利亚',
        Ecuador: '厄瓜多尔',
        Egypt: '埃及',
        Eritrea: '厄立特里亚',
        Spain: '西班牙',
        Estonia: '爱沙尼亚',
        Ethiopia: '埃塞俄比亚',
        Finland: '芬兰',
        Fiji: '斐',
        'Falkland Islands': '福克兰群岛',
        France: '法国',
        Gabon: '加蓬',
        'United Kingdom': '英国',
        Georgia: '格鲁吉亚',
        Ghana: '加纳',
        Guinea: '几内亚',
        Gambia: '冈比亚',
        'Guinea Bissau': '几内亚比绍',
        Greece: '希腊',
        Greenland: '丹麦',
        Guatemala: '危地马拉',
        'French Guiana': '法属圭亚那',
        Guyana: '圭亚那',
        Honduras: '洪都拉斯',
        Croatia: '克罗地亚',
        Haiti: '海地',
        Hungary: '匈牙利',
        Indonesia: '印度尼西亚',
        India: '印度',
        Ireland: '爱尔兰',
        Iran: '伊朗',
        Iraq: '伊拉克',
        Iceland: '冰岛',
        Israel: '以色列',
        Italy: '意大利',
        Jamaica: '牙买加',
        Jordan: '约旦',
        Japan: '日本本土',
        Kazakhstan: '哈萨克斯坦',
        Kenya: '肯尼亚',
        Kyrgyzstan: '吉尔吉斯斯坦',
        Cambodia: '柬埔寨',
        Kosovo: '科索沃',
        Kuwait: '科威特',
        Laos: '老挝',
        Lebanon: '黎巴嫩',
        Liberia: '利比里亚',
        Libya: '利比亚',
        'Sri Lanka': '斯里兰卡',
        Lesotho: '莱索托',
        Lithuania: '立陶宛',
        Luxembourg: '卢森堡',
        Latvia: '拉脱维亚',
        Morocco: '摩洛哥',
        Moldova: '摩尔多瓦',
        Madagascar: '马达加斯加',
        Mexico: '墨西哥',
        Macedonia: '马其顿',
        Mali: '马里',
        Myanmar: '缅甸',
        Montenegro: '黑山',
        Mongolia: '蒙古',
        Mozambique: '莫桑比克',
        Mauritania: '毛里塔尼亚',
        Malawi: '马拉维',
        Malaysia: '马来西亚',
        Namibia: '纳米比亚',
        'New Caledonia': '新喀里多尼亚',
        Niger: '尼日尔',
        Nigeria: '尼日利亚',
        Nicaragua: '尼加拉瓜',
        Netherlands: '荷兰',
        Norway: '挪威',
        Nepal: '尼泊尔',
        'New Zealand': '新西兰',
        Oman: '阿曼',
        Pakistan: '巴基斯坦',
        Panama: '巴拿马',
        Peru: '秘鲁',
        Philippines: '菲律宾',
        'Papua New Guinea': '巴布亚新几内亚',
        Poland: '波兰',
        'Puerto Rico': '波多黎各',
        'North Korea': '北朝鲜',
        Portugal: '葡萄牙',
        Paraguay: '巴拉圭',
        Qatar: '卡塔尔',
        Romania: '罗马尼亚',
        Russia: '俄罗斯',
        Rwanda: '卢旺达',
        'Western Sahara': '西撒哈拉',
        'Saudi Arabia': '沙特阿拉伯',
        Sudan: '苏丹',
        'South Sudan': '南苏丹',
        Senegal: '塞内加尔',
        'Solomon Islands': '所罗门群岛',
        'Sierra Leone': '塞拉利昂',
        'El Salvador': '萨尔瓦多',
        Somaliland: '索马里兰',
        Somalia: '索马里',
        'Republic of Serbia': '塞尔维亚',
        Suriname: '苏里南',
        Slovakia: '斯洛伐克',
        Slovenia: '斯洛文尼亚',
        Sweden: '瑞典',
        Swaziland: '斯威士兰',
        Syria: '叙利亚',
        Chad: '乍得',
        Togo: '多哥',
        Thailand: '泰国',
        Tajikistan: '塔吉克斯坦',
        Turkmenistan: '土库曼斯坦',
        'East Timor': '东帝汶',
        'Trinidad and Tobago': '特里尼达和多巴哥',
        Tunisia: '突尼斯',
        Turkey: '土耳其',
        'United Republic of Tanzania': '坦桑尼亚',
        Uganda: '乌干达',
        Ukraine: '乌克兰',
        Uruguay: '乌拉圭',
        'United States': '美国',
        Uzbekistan: '乌兹别克斯坦',
        Venezuela: '委内瑞拉',
        Vietnam: '越南',
        Vanuatu: '瓦努阿图',
        'West Bank': '西岸',
        Yemen: '也门',
        'South Africa': '南非',
        Zambia: '赞比亚',
        Korea: '韩国',
        Tanzania: '坦桑尼亚',
        Zimbabwe: '津巴布韦',
        Congo: '刚果(金)',
        'Central African Rep.': '中非共和国',
        'Dem. Rep. Congo':'刚果(布)',
        Serbia: '塞尔维亚',
        'Bosnia and Herz.': '波黑',
        'Czech Rep.': '捷克',
        'W. Sahara': '西撒哈拉',
        'Lao PDR': '老挝',
        'Dem.Rep.Korea': '朝鲜',
        'Falkland Is.': '福克兰群岛',
        'Timor-Leste': '东帝汶',
        'Solomon Is.': '所罗门群岛',
        Palestine: '巴勒斯坦',
        'N. Cyprus': '北塞浦路斯',
        Aland: '奥兰群岛',
        'Fr. S. Antarctic Lands': '法属南半球和南极陆地',
        Mauritius: '毛里求斯',
        Comoros: '科摩罗',
        'Eq. Guinea': '赤道几内亚',
        'Guinea-Bissau': '几内亚比绍',
        'Dominican Rep.': '多米尼加',
        'Saint Lucia': '圣卢西亚',
        Dominica: '多米尼克',
        'Antigua and Barb.': '安提瓜和巴布达',
        'U.S. Virgin Is.': '美国原始岛屿',
        Montserrat: '蒙塞拉特',
        Grenada: '格林纳达',
        Barbados: '巴巴多斯',
        Samoa: '萨摩亚',
        Bahamas: '巴哈马',
        'Cayman Is.': '开曼群岛',
        'Faeroe Is.': '法罗群岛',
        'IsIe of Man': '马恩岛',
        Malta: '马耳他共和国',
        Jersey: '泽西',
        'Cape Verde': '佛得角共和国',
        'Turks and Caicos Is.': '特克斯和凯科斯群岛',
        'St. Vin. and Gren.': '圣文森特和格林纳丁斯',
        'Côte d\'Ivoire':'科特迪瓦',
        'S. Sudan':'南苏丹'
    }

将译名数组搭载到生成函数里就可以看到如下效果啦

 

 (这一片红属实有点吓人啊)

posted on 2021-03-24 20:41  哈利路亚#0207  阅读(83)  评论(0编辑  收藏  举报
Live2D