使用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下载
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战