使用echarts实现地图map

<!doctype html>
<html>
 
<head>
<meta charset="utf-8">
<title>echarts.js中国地图省份悬浮提示</title>
<script src="../js/echarts.min.js"></script>
<script type="text/javascript" src="../js/macarons.js"></script>
<!-- <script src="../js/china.js"></script> -->
<script type="text/javascript" src="china_1.js"></script></head>
 
<body>
 
<div id="container" style="height: 800px;width:800px;background:white;margin:20px 0 0;"></div>
 
<script type="text/javascript">
    // 全国省份列表
 
function randomData() {  
	return Math.round(Math.random()*1000);
}  
 
var dataMap =[  
   {name: '北京',value: 150 },{name: '天津',value: randomData() },  
    {name: '上海',value: randomData() },{name: '重庆',value: randomData() },  
    {name: '河北',value: randomData() },{name: '河南',value: randomData() },  
    {name: '云南',value: randomData() },{name: '辽宁',value: randomData() },  
    {name: '黑龙江',value: randomData() },{name: '湖南',value: randomData() },  
    {name: '安徽',value: randomData() },{name: '山东',value: randomData() },  
    {name: '新疆',value: randomData() },{name: '江苏',value: randomData() },  
    {name: '浙江',value: randomData() },{name: '江西',value: randomData() },  
   /*  {name: '湖北',value: randomData() },{name: '广西',value: randomData() },  
    {name: '甘肃',value: randomData() },{name: '山西',value: randomData() },   */
    {name: '内蒙古',value: randomData() },{name: '陕西',value: randomData()},  
    {name: '吉林',value: randomData() },{name: '福建',value: randomData() },  
    {name: '贵州',value: randomData() },{name: '广东',value: randomData() },
    {name: '青海',value: randomData() },{name: '西藏',value: randomData() },  
    {name: '四川',value: randomData() },{name: '宁夏',value: randomData() },  
    {name: '海南',value: randomData() },{name: '台湾',value: randomData() },  
    {name: '香港',value: randomData() },{name: '澳门',value: randomData() },{name: '南海诸岛',value: randomData() }
];
// 需要在页面上直接标记出来的城市
 
	var specialMap = []; //默认选中的几个城市设置   "北京","重庆"
    // 对dataMap进行处理,使其可以直接在页面上展示
    for (var i = 0; i < specialMap.length; i++) {
        for (var j = 0; j < dataMap.length; j++) {
            if (specialMap[i] == dataMap[j].name) {
                dataMap[j].selected = true;
                break;
            }
 
        }
    }
 
/* var option = {
	title : {
        text: '平台用户分布',
        subtext: '纯属虚构',
        x:'left',
        textStyle:{
        	fontSize:30
        }
    },
    tooltip: {
    	formatter: function (params) {
            var info = '';//'<p style="font-size:18px">' + params.name + '</p><p style="font-size:14px">这里可以写一些,想展示在页面上的别的信息</p>';
            if(params.data.value != undefined){
            	info = '注册用户</br>'+params.name+' : '+params.data.value+'人';
            }
            return info;
            
        },
        //backgroundColor: "#ff7f50",//提示标签背景颜色
        //textStyle: { color: "#fff" } //提示标签字体颜色
    },
	//左侧小导航图标
    visualMap: {  
        show : true,  
        x: 'left',  
        y: 'center',  
        splitList: [   
            {start: 500, end:600},{start: 400, end: 500},  
            {start: 300, end: 400},{start: 200, end: 300},  
            {start: 100, end: 200},{start: 0, end: 100},  
        ],  
        //color: ['#5475f5', '#9feaa5', '#85daef','#74e2ca', '#e6ac53', '#9fb5ea']  
    }, 
    dataRange: {
    	orient: 'vertical', //vertical:垂直 ,horizontal
    	min: 0,
    	max: 1000,
        x: 'left',
        y: 'bottom',
        text:['高','低'],           // 文本,默认为数值文本
        calculable : true,
       /* splitList:[  //自定义范围
       		{start: 1500},
            {start: 900, end: 1500},
            {start: 310, end: 1000},
            {start: 200, end: 300},
            {start: 10, end: 200, label: '10 到 200(自定义label)'},
            {start: 5, end: 5, label: '5(自定义特殊颜色)', color: 'black'},
            {end: 10}
       ] 
    },
    series: [
        {
            name: '注册用户',
            type: 'map',
            mapType: 'china',
            
            label: {
                normal: {
                    show: true,//显示省份标签
                },
                emphasis: {
                    show: false,//对应的鼠标悬浮效果
                }
            },
 
            data: dataMap
        }
    ]
}; */
//初始化echarts实例
var myChart = echarts.init(document.getElementById('container'),'macarons');
	myChart.on("mouseover",function(params){  //鼠标悬停事件
		/* params.color = "#2ec7c9";
		console.log("悬浮事件"); */
		var color ="";
		if(params.data == undefined){
			color = "#ecebeb";
		}else{
			color = "#2ec7c9";
		}
		params.color = color;
   		params.event.target.style.fill = color;
		
	});
	myChart.on("mouseout",function(e){
	});
var option = {
    title : {
        text: '用户分布',
        subtext: '纯属虚构',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: function (params) {
            var info = '';//'<p style="font-size:18px">' + params.name + '</p><p style="font-size:14px">这里可以写一些,想展示在页面上的别的信息</p>';
            if(params.data != undefined){
            	info = '注册用户</br>'+params.name+' : '+params.data.value+'人';
            	return info;
            }else{
            	hideTip();
            }
            
        },
    },
   /*  legend: {
        orient: 'vertical',
        x:'left',
        data:['iphone3','iphone4','iphone5']
    }, */
    dataRange: {
        min: 0,
        max: 2500,
        x: 'left',
        y: 'bottom',
        text:['高','低'],           // 文本,默认为数值文本
        calculable : true
    },
    toolbox: {
        show: true,
        orient : 'vertical',
        x: 'right',
        y: 'center',
        feature : {
            mark : {show: true},
            dataView : {show: true, readOnly: false},
            restore : {show: true},
            saveAsImage : {show: true}
        }
    },
    roamController: {
        show: true,
        x: 'right',
        mapTypeControl: {
            'china': true
        }
    },
    series : [
        {
            name: '用户分布',
            type: 'map',
            mapType: 'china',
            roam: false,
            itemStyle:{
                normal:{label:{show:true}},
                emphasis:{label:{show:true},} // areaColor设置鼠标悬浮到省的颜色 areaColor:'#2a333d'
            },
            data:dataMap
        }
    ]
    

};
  function hideTip(){
  }                  
//使用制定的配置项和数据显示图表
myChart.setOption(option);
</script>
 
</body>
</html>

处理了 鼠标悬停在没有数值的区域的时候 没有选中的效果  资源上传中 审核成功之后 附下载地址的哦  有用的话点个赞

点击下载:demo下载

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码奴生来只知道前进~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值