echarts 中国地图,tooltip,legend同时显示多组数据

此echarts图只是用于示例,记录在此,只是为方便以后可能需要用到做参考。具体数据部分,部分代码不够严整,就不在考虑范围了,毕竟这种较为复杂的图形用的也不多。

// 地图数据
var chinaDataURL = “/asset/get/s/data-1517645039291-B1vgpymUz.json”;

//坐标
var geoCoordMap = {
‘上海’: [119.1803, 31.2891],
“福建”: [119.4543, 25.9222],
“重庆”: [108.384366, 30.439702],
‘北京’: [116.4551, 40.2539],
“辽宁”: [123.1238, 42.1216],
“河北”: [114.4995, 38.1006],
“天津”: [117.4219, 39.4189],
“山西”: [112.3352, 37.9413],
“陕西”: [109.1162, 34.2004],
“甘肃”: [103.5901, 36.3043],
“宁夏”: [106.3586, 38.1775],
“青海”: [101.4038, 36.8207],
“新疆”: [87.9236, 43.5883],
“西藏”: [91.11, 29.97],
“四川”: [103.9526, 30.7617],
“吉林”: [125.8154, 44.2584],
“山东”: [117.1582, 36.8701],
“河南”: [113.4668, 34.6234],
“江苏”: [118.8062, 31.9208],
“安徽”: [117.29, 32.0581],
“湖北”: [114.3896, 30.6628],
“浙江”: [119.5313, 29.8773],
‘内蒙古’: [110.3467, 41.4899],
“江西”: [116.0046, 28.6633],
“湖南”: [113.0823, 28.2568],
“贵州”: [106.6992, 26.7682],
“云南”: [102.9199, 25.4663],
“广东”: [113.12244, 23.009505],
“广西”: [108.479, 23.1152],
“海南”: [110.3893, 19.8516],
‘黑龙江’: [127.9688, 45.368],
‘台湾’: [121.4648, 25.5630]
};
var data=[
{name:“宁夏”,value:“250021”},
{name:“新疆”,value:“452001”},
{name:“广东”,value:“550021”},
{name:“广西”,value:“258821”},
{name:“海南”,value:“457721”},
{name:“山东”,value:“521990”},
{name:“河南”,value:“521990”},
{name:“湖北”,value:“521990”},
{name:“湖南”,value:“212100”},
{name:“天津”,value:“1119938”},
{name:“河北”,value:“719938”},
{name:“浙江”,value:“521990”},
{name:“安徽”,value:“521990”},
{name:“福建”,value:“521990”},
{name:“江西”,value:“521990”},
{name:“山西”,value:“819938”},
{name:“内蒙古”,value:“919938”},
{name:“重庆”,value:“322100”},
{name:“四川”,value:“252100”},
{name:“贵州”,value:“252100”},
{name:“云南”,value:“252100”},
{name:“西藏”,value:“252001”},
{name:“陕西”,value:“450021”},
{name:“甘肃”,value:“450021”},
{name:“青海”,value:“350021”},
{name:“辽宁”,value:“619938”},
{name:“吉林”,value:“719938”},
{name:“黑龙江”,value:“919938”},
{name:“上海”,value:“1019938”},
{name:“江苏”,value:“521990”}
]

//series数据
var capital=[
{name:“宁夏”,value:[{name:“时间”,value:“20170303”},{name:“数值”,value:“250021”},{name:“类型”,value: “资金”},{name:“程度”,value:“轻微”}]},
{name:“新疆”,value:[{name:“时间”,value:“20170302”},{name:“数值”,value:“452001”},{name:“类型”,value:“资金”},{name:“程度”,value:“轻微”}]},
{name:“广东”,value:[{name:“时间”,value:“20170301”},{name:“数值”,value:“550021”},{name:“类型”,value: “资金”},{name:“程度”,value:“轻微”}]},
{name:“广西”,value:[{name:“时间”,value:“20170325”},{name:“数值”,value:“258821”},{name:“类型”,value:“资金”},{name:“程度”,value:“轻微”}]},
{name:“海南”,value:[{name:“时间”,value:“20170315”},{name:“数值”,value:“457721”},{name:“类型”,value: “资金”},{name:“程度”,value:“轻微”}]},
{name:“山东”,value:[{name:“时间”,value:“20180316”},{name:“数值”,value:“521990”},{name:“类型”,value: “资金”},{name:“程度”,value:“一般”}]},
{name:“河南”,value:[{name:“时间”,value:“20180315”},{name:“数值”,value:“521990”},{name:“类型”,value:“资金”},{name:“程度”,value:“一般”}]},
{name:“湖北”,value:[{name:“时间”,value:“20180314”},{name:“数值”,value:“521990”},{name:“类型”,value:“资金”},{name:“程度”,value:“一般”}]},
{name:“湖南”,value:[{name:“时间”,value:“20180313”},{name:“数值”,value:“212100”},{name:“类型”,value:“资金”},{name:“程度”,value:“轻微”}]},
{name:“天津”,value:[{name:“时间”,value:“20190305”},{name:“数值”,value:“1119938”},{name:“类型”,value:“资金”},{name:“程度”,value:“严重”}]},
{name:“河北”,value:[{name:“时间”,value:“20190205”},{name:“数值”,value:“719938”},{name:“类型”,value:“资金”},{name:“程度”,value:“严重”}]}]

var manage=[
{name:“浙江”,value:[{name:“时间”,value:“20180320”},{name:“数值”,value:“521990”},{name:“类型”,value:“管理”},{name:“程度”,value:“一般”}]},
{name:“安徽”,value:[{name:“时间”,value:“20180319”},{name:“数值”,value:“521990”},{name:“类型”,value: “管理”},{name:“程度”,value: “一般”}]},
{name:“福建”,value:[{name:“时间”,value:“20180318”},{name:“数值”,value:“521990”},{name:“类型”,value:“管理”},{name:“程度”,value:“一般”}]},
{name:“江西”,value:[{name:“时间”,value:“20180317”},{name:“数值”,value:“521990”},{name:“类型”,value:“管理”},{name:“程度”,value:“一般”}]},
{name:“山西”,value:[{name:“时间”,value:“20190105”},{name:“数值”,value:“819938”},{name:“类型”,value: “管理”},{name:“程度”,value: “严重”}]},
{name:“内蒙古”,value:[{name:“时间”,value:“20180326”},{name:“数值”,value:“919938”},{name:“类型”,value:“管理”},{name:“程度”,value:“严重”}]}]

var person=[
{name:“重庆”,value:[{name:“时间”,value:“20180312”},{name:“数值”,value:“322100”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“四川”,value:[{name:“时间”,value:“20180311”},{name:“数值”,value:“252100”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“贵州”,value:[{name:“时间”,value:“20180310”},{name:“数值”,value:“252100”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“云南”,value:[{name:“时间”,value:“20170309”},{name:“数值”,value:“252100”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“西藏”,value:[{name:“时间”,value:“20170308”},{name:“数值”,value:“252001”},{name:“类型”,value:“人员”},{name:“程度”,value: “轻微”}]},
{name:“陕西”,value:[{name:“时间”,value:“20170307”},{name:“数值”,value:“450021”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“甘肃”,value:[{name:“时间”,value:“20170306”},{name:“数值”,value:“450021”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“青海”,value:[{name:“时间”,value:“20170304”},{name:“数值”,value:“350021”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]}]

var weather = [
{name:“辽宁”,value:[{name:“时间”,value:“20180325”},{name:“数值”,value:“619938”},{name:“类型”,value: “天气”},{name:“程度”,value: “严重”}]},
{name:“吉林”,value:[{name:“时间”,value:“20180324”},{name:“数值”,value:“719938”},{name:“类型”,value:“天气”},{name:“程度”,value: “严重”}]},
{name:“黑龙江”,value:[{name:“时间”,value:“20180323”},{name:“数值”,value:“919938”},{name:“类型”,value:“天气”},{name:“程度”,value:“严重”}]},
{name:“上海”,value:[{name:“时间”,value:“20180322”},{name:“数值”,value:“1019938”},{name:“类型”,value:“天气”},{name:“程度”,value:“严重”}]},
{name:“江苏”,value:[{name:“时间”,value:“20180321”},{name:“数值”,value:“521990”},{name:“类型”,value:“天气”},{name:“程度”,value:“一般”}]}]
var data = [
{name:“天津”,value:[{name:“时间”,value:“20190305”},{name:“数值”,value:“1119938”},{name:“类型”,value:“资金”},{name:“程度”,value:“严重”}]},
{name:“河北”,value:[{name:“时间”,value:“20190205”},{name:“数值”,value:“719938”},{name:“类型”,value:“资金”},{name:“程度”,value:“严重”}]},
{name:“山西”,value:[{name:“时间”,value:“20190105”},{name:“数值”,value:“819938”},{name:“类型”,value: “管理”},{name:“程度”,value: “严重”}]},
{name:“内蒙古”,value:[{name:“时间”,value:“20180326”},{name:“数值”,value:“919938”},{name:“类型”,value:“管理”},{name:“程度”,value:“严重”}]},
{name:“辽宁”,value:[{name:“时间”,value:“20180325”},{name:“数值”,value:“619938”},{name:“类型”,value: “天气”},{name:“程度”,value: “严重”}]},
{name:“吉林”,value:[{name:“时间”,value:“20180324”},{name:“数值”,value:“719938”},{name:“类型”,value:“天气”},{name:“程度”,value: “严重”}]},
{name:“黑龙江”,value:[{name:“时间”,value:“20180323”},{name:“数值”,value:“919938”},{name:“类型”,value:“天气”},{name:“程度”,value:“严重”}]},
{name:“上海”,value:[{name:“时间”,value:“20180322”},{name:“数值”,value:“1019938”},{name:“类型”,value:“天气”},{name:“程度”,value:“严重”}]},
{name:“江苏”,value:[{name:“时间”,value:“20180321”},{name:“数值”,value:“521990”},{name:“类型”,value:“天气”},{name:“程度”,value:“一般”}]},
{name:“浙江”,value:[{name:“时间”,value:“20180320”},{name:“数值”,value:“521990”},{name:“类型”,value:“管理”},{name:“程度”,value:“一般”}]},
{name:“安徽”,value:[{name:“时间”,value:“20180319”},{name:“数值”,value:“521990”},{name:“类型”,value: “管理”},{name:“程度”,value: “一般”}]},
{name:“福建”,value:[{name:“时间”,value:“20180318”},{name:“数值”,value:“521990”},{name:“类型”,value:“管理”},{name:“程度”,value:“一般”}]},
{name:“江西”,value:[{name:“时间”,value:“20180317”},{name:“数值”,value:“521990”},{name:“类型”,value:“管理”},{name:“程度”,value:“一般”}]},
{name:“山东”,value:[{name:“时间”,value:“20180316”},{name:“数值”,value:“521990”},{name:“类型”,value: “资金”},{name:“程度”,value:“一般”}]},
{name:“河南”,value:[{name:“时间”,value:“20180315”},{name:“数值”,value:“521990”},{name:“类型”,value:“资金”},{name:“程度”,value:“一般”}]},
{name:“湖北”,value:[{name:“时间”,value:“20180314”},{name:“数值”,value:“521990”},{name:“类型”,value:“资金”},{name:“程度”,value:“一般”}]},
{name:“湖南”,value:[{name:“时间”,value:“20180313”},{name:“数值”,value:“212100”},{name:“类型”,value:“资金”},{name:“程度”,value:“轻微”}]},
{name:“重庆”,value:[{name:“时间”,value:“20180312”},{name:“数值”,value:“322100”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“四川”,value:[{name:“时间”,value:“20180311”},{name:“数值”,value:“252100”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“贵州”,value:[{name:“时间”,value:“20180310”},{name:“数值”,value:“252100”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“云南”,value:[{name:“时间”,value:“20170309”},{name:“数值”,value:“252100”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“西藏”,value:[{name:“时间”,value:“20170308”},{name:“数值”,value:“252001”},{name:“类型”,value:“人员”},{name:“程度”,value: “轻微”}]},
{name:“陕西”,value:[{name:“时间”,value:“20170307”},{name:“数值”,value:“450021”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“甘肃”,value:[{name:“时间”,value:“20170306”},{name:“数值”,value:“450021”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“青海”,value:[{name:“时间”,value:“20170304”},{name:“数值”,value:“350021”},{name:“类型”,value:“人员”},{name:“程度”,value:“轻微”}]},
{name:“宁夏”,value:[{name:“时间”,value:“20170303”},{name:“数值”,value:“250021”},{name:“类型”,value: “资金”},{name:“程度”,value:“轻微”}]},
{name:“新疆”,value:[{name:“时间”,value:“20170302”},{name:“数值”,value:“452001”},{name:“类型”,value:“资金”},{name:“程度”,value:“轻微”}]},
{name:“广东”,value:[{name:“时间”,value:“20170301”},{name:“数值”,value:“550021”},{name:“类型”,value: “资金”},{name:“程度”,value:“轻微”}]},
{name:“广西”,value:[{name:“时间”,value:“20170325”},{name:“数值”,value:“258821”},{name:“类型”,value:“资金”},{name:“程度”,value:“轻微”}]},
{name:“海南”,value:[{name:“时间”,value:“20170315”},{name:“数值”,value:“457721”},{name:“类型”,value: “资金”},{name:“程度”,value:“轻微”}]}
]

var capitalData = function(data) {
var res = [];
for (var i = 0; i < capital.length; i++) {
var geoCoord = geoCoordMap[capital[i].name];
if (geoCoord) {
res.push({
name: capital[i].name,
value: geoCoord.concat(capital[i].value[1].value)
});
}
}
return res;
};
var manageData = function(data) {
var res = [];
for (var i = 0; i < manage.length; i++) {
var geoCoord = geoCoordMap[manage[i].name];
if (geoCoord) {
res.push({
name: manage[i].name,
value: geoCoord.concat(manage[i].value[1].value)
});
}
}
return res;
};
var personData = function(data) {
var res = [];
for (var i = 0; i < person.length; i++) {
var geoCoord = geoCoordMap[person[i].name];
if (geoCoord) {
res.push({
name: person[i].name,
value: geoCoord.concat(person[i].value[1].value)
});
}
}
return res;
};
var weatherData = function(data) {
var res = [];
for (var i = 0; i < weather.length; i++) {
var geoCoord = geoCoordMap[weather[i].name];
if (geoCoord) {
res.push({
name: weather[i].name,
value: geoCoord.concat(weather[i].value[1].value)
});
}
}
return res;
};

$.getJSON(chinaDataURL, function(geoJson) {
echarts.registerMap(‘china’, geoJson)

option = {
    backgroundColor: '#030303',
    title: {
        text: '全国主要城市损失',
        sublink: 'http://www.pm25.in',
        left: 'center',
        textStyle: {
            color: '#fff'
        }
    },
    tooltip: {
        trigger: 'item',
        formatter: function(params) {
          
			var toolTiphtml = ''
			for(var i = 0;i<data.length;i++){
				if(params.name==data[i].name){
					toolTiphtml += data[i].name+':<br>'
					for(var j = 0;j<data[i].value.length;j++){
						toolTiphtml+=data[i].value[j].name+':'+data[i].value[j].value+"<br>"
					}
				}
			}
			return toolTiphtml;
    }
    },
    legend: {
        orient: 'vertical',
        right: 20,
        top: 10,
        data: [{
                name: '天气',
                   }, {
                name: '资金',
                  },
            {
                name: '管理',
                 },
            {
                name: '人员',
                 }
        ],
        textStyle: {
            color: '#fff'
        }
    },
    visualMap: {
        min: 0,
        max: 1200000,
        left: 20,
        bottom: 20,
        calculable: true,
        text: ['高', '低'],
        inRange: {
            color: ['rgb(70, 240, 252)', 'rgb(250, 220, 46)', 'rgb(245, 38, 186)']
        },
        textStyle: {
            color: '#fff'
        }
    },
    geo: {
        map: 'china',
        label: {
            emphasis: {
                show: false
            }
        },
        itemStyle: {
            normal: {
                areaColor: 'rgb(19, 91, 153)',
                borderColor: 'rgb(9, 54, 95)'
            },
            emphasis: {
                areaColor: 'rgb(10, 105, 187)'
            }
        }
    },
    series: [
         {
            name: '天气',
            type: 'scatter',
            coordinateSystem: 'geo',
            data: weatherData(data),
            symbol:'arrow',
            symbolSize: function(val) {
                return val[2] / 50000;
            },
            label: {
                normal: {
                    show: false,
                    formatter: function(params) {
                        // console.log(params);
                        return params.name;
                    },
                    position: 'right',
                    color: '#fff',
                    fontSize: '8'
                },
                emphasis: {
                    show: false
                }
            },
            itemStyle: {
                normal: {
                    color: '#4bbbb2',
                    borderWidth: 2,
                    borderColor: '#b4dccd'
                }
            }
        },{
            name: '资金',
            type: 'scatter',
            coordinateSystem: 'geo',
            data: capitalData(data),
            symbol:'circle', 
            symbolSize: function(val) {
                return val[2] / 50000;
            },
            label: {
                normal: {
                    show: false,
                    formatter: function(params) {
                        // console.log(params);
                        return params.name;
                    },
                    position: 'right',
                    color: '#fff',
                    fontSize: '8'
                },
                emphasis: {
                    show: false
                }
            },
            itemStyle: {
                normal: {
                    color: '#ea6347',
                    borderWidth: 2,
                    borderColor: '#f4b391'
                }
            }
        },
        {
            name: '管理',
            type: 'scatter',
            coordinateSystem: 'geo',
            data: manageData(data),
            symbol: 'pin', 
            symbolSize: function(val) {
                return val[2] /50000;
            },
            label: {
                normal: {
                    show: false,
                    formatter: function(params) {
                        // console.log(params);
                        return params.name;
                    },
                    position: 'right',
                    color: '#fff',
                    fontSize: '8'
                },
                emphasis: {
                    show: false
                }
            },
            itemStyle: {
                normal: {
                    color: '#00ff00',
                    borderWidth: 2,
                    borderColor: '#55E355'
                }
            }
        },
        {
            name: '人员',
            type: 'scatter',
            coordinateSystem: 'geo',
            data: personData(data),
            symbol:'triangle',
            symbolSize: function(val) {
                console.log(personData(data))
                return val[2] / 50000;
            },
            label: {
                normal: {
                    show: false,
                    formatter: function(params) {
                        // console.log(params);
                        return params.name;
                    },
                    position: 'right',
                    color: '#fff',
                    fontSize: '8'
                },
                emphasis: {
                    show: false
                }
            },
            itemStyle: {
                normal: {
                    color: '#FAFF1A',
                    borderWidth: 2,
                    borderColor: '#E3BC1F'
                }
            }
        },

        {
            type: 'map',
            map: 'china',
            geoIndex: 0,
            aspectScale: 0.75, //长宽比
            tooltip: {
                show: false
            }
        }
    ]
}

myChart.setOption(option);

});
在这里插入图片描述

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值