使用echarts在地图中使用dispatchAction

效果如下

在这里插入图片描述

注意事项

1、必须使用goe渲染地图
2、同一个option只能存在一个series参数
3、tooltip提示框默认跟随series参数展示
4、通过地图区域的鼠标悬停事件,用dispatchAction触发城市锚点scatter对应的tooltip
5、dispatchAction的seriesIndex必须加上

代码如下
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="../echarts-4.8.0/package/dist/echarts.js"></script>
		<script src="./黔西南布依族苗族自治州.js"></script>
	</head>
	<body>
		<div id="map" style="width: 500px;height: 500px;margin: 0 auto"></div>
		
		<script type="text/javascript">
			// 城市的坐标
			// yoy : year on year 同比
			// mom: month on month 环比
			const scatterData = [
			  {
			    name: '兴义市',
			    value: [104.897982, 25.088599],
			    typeList: [{ type: '数据', yoy: '14.8', mom: '-12.8' }],
			  },
			  {
			    name: '安龙县',
			    value: [105.471498, 25.108959],
			    typeList: [{ type: '数据', yoy: '14.8', mom: '-12.8' }],
			  },
			  {
			    name: '兴仁市',
			    value: [105.192778, 25.431378],
			    typeList: [{ type: '数据', yoy: '14.8', mom: '-12.8' }],
			  },
			  {
			    name: '普安县',
			    value: [104.955347, 25.786404],
			    typeList: [{ type: '数据', yoy: '14.8', mom: '-12.8' }],
			  },
			  {
			    name: '晴隆县',
			    value: [105.218773, 25.832881],
			    typeList: [{ type: '数据', yoy: '14.8', mom: '-12.8' }],
			  },
			  {
			    name: '贞丰县',
			    value: [105.650133, 25.385752],
			    typeList: [{ type: '数据', yoy: '14.8', mom: '-12.8' }],
			  },
			  {
			    name: '望谟县',
			    value: [106.091563, 25.166667],
			    typeList: [{ type: '数据', yoy: '14.8', mom: '-12.8' }],
			  },
			  {
			    name: '册亨县',
			    value: [105.81241, 24.983338],
			    typeList: [{ type: '数据', yoy: '14.8', mom: '-12.8' }],
			  },
			];
			
			const option = {
			  title: {
			    text: '黔西南州',
			    subtext: '兴义市',
			    left: 'center',
			  },
			  tooltip: {
			    backgroundColor: '#fff',
			    trigger: 'item',
				alwaysShowContent: true,
				triggerOn: 'mousemove' ,
			    formatter: function(params) {
			      let htmlStr = '';
			      params.data.typeList.forEach(item => {
			        // 判断数值升降
			        let colorSpan = number => {
			          let color = number > 0 ? '#00cc99' : '#ff0000';
			          return `<span style="color: ${color}">${number}%</span>`;
			        };
			        htmlStr += `
			          <div>
			            ${item.type}:同比 ${colorSpan(item.yoy)}  环比 ${colorSpan(item.mom)}
			          </div>
			        `;
			      });
			
			      return `<div style="width: 300px; height: 100px; border-radius: 5px; color: #000; font-weight: 600;">
			        ${htmlStr}
			      </div>`;
			    },
			  },
			  geo: {
			    map: '黔西南州',
			    roam: false,
			    zoom: 1.2,
			    itemStyle: {
			      normal: {
			        borderWidth: 2,
			        borderColor: '#0090fe', //边框颜色
			        areaColor: '#003399', //地图区域颜色
			      },
			      emphasis: {
			        show: 'true',
			        borderWidth: 4,
			        borderColor: '#b2163c', //边框颜色
			        areaColor: '#531f67', //鼠标移上去的颜色
			      },
			    },
			    label: {
			      normal: {
			        color: '#fff',
			        fontWeight: 'bold',
			        show: true,
			      },
			      emphasis: {
			        color: '#fff',
			        fontWeight: 'bold',
			        show: true,
			      },
			    },
			  },
			  series:[
				  {
					type: 'scatter',
					coordinateSystem: 'geo',
					symbol: 'circle' ,
					symbolSize: 10 ,
					color: "#00cc99",
					data: scatterData
				  }
			  ]
			};

			echarts.registerMap("黔西南州", jsonGeo);
			let myChart = echarts.init(document.getElementById('map'));
			myChart.setOption(option);
			
			myChart.on('mouseover' , (params)=>{
				myChart.dispatchAction({
				    type:'showTip',//默认显示江苏的提示框
				    seriesIndex: 0,//这行不能省
				    name: params.name 
				});
			})
		</script>
	</body>
</html>


  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: echarts dispatchActionecharts的一个方法,用于触发图表的行为事件。通过调用该方法,可以实现对图表的交互操作,例如点击、hover等。该方法的参数包括行为类型、行为参数等,可以根据具体需求进行设置。使用该方法可以实现图表的动态交互效果,提升用户体验。 ### 回答2: Echarts是一个优秀的可视化图表库,为实现与Echarts图标的交互,Echarts提供了一些API接口。其dispatchAction()函数是Echarts提供的一个非常重要的API接口之一。 dispatchAction()函数可以通过JavaScript触发Echarts实例的图表事件,各个图表类型的事件不一定是相同的,比如饼图就没有hover事件,而散点图就有click、brushSelected、dataZoom等等。通过事件触发函数dispatchAction(),我们可以控制这些事件的触发,来实现图表的各种交互操作,比如: 1. hover:鼠标滑过某个图表元素时,可以通过dispatchAction()来响应该事件,比如触发提示框或者其他自定义提示效果。 2. click:当某个图表元素被点击时,可以通过dispatchAction()函数触发该事件,响应用户点击操作并执行相应的操作。 3. brushSelected:使用brush组件选某些图表元素后,可以通过dispatchAction()函数,将所选元素的状态传递给其他组件响应。 4. dataZoom:使用dataZoom组件滑动时,可以通过dispatchAction()函数响应该事件,来改变图表的显示范围和数据量,实现数据的快速切换。 总之,EchartsdispatchAction()函数营造了一个良好的图表交互环境,使得用户可以通过各种操作实现图表与数据的快速沟通。这些交互体验的不断改进,为数据分析提供了更为丰富的可视化呈现形式。 ### 回答3: Echarts dispatchAction主要是Echarts的一个方法,用于触发Echarts图表的行为。该方法可以用于在图表上进行交互式操作,例如用户点击图表上的某个元素,就可以使用dispatchAction方法来触发相应的事件。 dispatchAction方法的调用可以实现图表的联动效果。例如,当用户点击地图上的省份区域时,可以触发另一个图表显示该省份的详细数据;当用户选择某个时间段时,可以自动更新图表的数据等等。 Echarts dispatchAction方法可以实现以下三个动作: 1. 触发数据区域的高亮显示:通过dispatchAction方法,可以将某个区域的数据高亮显示,以提供用户更好的可视化体验。 2. 触发数据区域的选状态:当用户选择某个区域时,可以通过dispatchAction方法改变该区域的选状态,以供用户处理更多的数据信息。 3. 改变图表的显示状态:可以使用dispatchAction方法实现图表的改变状态,在不同的情况下显示不同的图表,以提供更好的数据呈现效果。 总之,Echarts dispatchAction方法是Echarts非常重要的一个方法,可以实现图表的交互效果,并提供更好的数据可视化效果,对于数据发现、决策和交互式分析具有重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值