首页 前端知识 使用 echarts.js 和echarts-auto-tooltip.js 实现2.5D 地图

使用 echarts.js 和echarts-auto-tooltip.js 实现2.5D 地图

2024-05-09 10:05:48 前端知识 前端哥 921 206 我要收藏

使用 echarts.js 和echarts-auto-tooltip.js 实现2.5D 地图,弹出框自动轮播,地图大小自适应!

一、效果图

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/89fd1b519f9c49709f3fedf7241564ff.png

二、整体架构流程

使用多个地图图层堆叠而成,使用echarts-auto-tooltip控件,实现tooltip自动轮博

三、主要代码实现

1、地图堆叠部分的代码

geo: [{
	show: true,
	type: 'map',
	map: 'beijing',
	label: {
		normal: {
			color:'#fff',
			fontSize:fontSize(0.12),
			show: true,
			opacity:0.8,
			textShadowColor:'rbga(0,0,0,0.18)',
			textShadowBlur:18,
			textShadowOffsetY:4,
		}
	},
	zlevel: 1,
	zoom: 1.14,
	aspectScale: 0.84,
	layoutCenter: ['50%', '46%'],
	layoutSize: '80%',
	roam: false,
	silent: true,
	itemStyle: {
		normal: {
			borderWidth: 1,
			borderColor:'#0b77c1',
			areaColor: {
				type: 'linear-gradient',
				x: 0,
				y: 300,
				x2: 0,
				y2: 0,
				colorStops: [
					{
						offset: 0.1,
						color: '#0b4e8b', // 0% 处的颜色
					},
					{
						offset: 0.8,
						color: '#1a36a4', // 100% 处的颜色
					},
				],
				global: true, // 缺省为 false
			},
		}
	},
},{
	show: true,
	type: 'map',
	map: 'beijing',
	zlevel: 0,
	zoom:1.14,
	aspectScale: 0.84,
	layoutCenter: ['50%', '46%'],
	layoutSize: '80%',
	roam: false,
	silent: true,
	itemStyle: {
		normal: {
			borderColor: '#08defb',
			borderJoin:'round',
			borderWidth:4,
			borderRadius:10,
			areaColor: 'red',
			shadowColor: 'red',
		},
	},
},{
	show: true,
	type: 'map',
	map: 'beijing',
	zlevel: -4,
	zoom: 1.18,
	aspectScale: 0.84,
	layoutCenter: ['50%', '49%'],
	layoutSize: '80%',
	roam: false,
	silent: true,
	itemStyle: {
		normal: {
			borderColor: 'red',
			borderJoin:'round',
			borderWidth:0,
			areaColor: '#0a2640',
		},
	},
},{
	show: true,
	type: 'map',
	map: 'beijing',
	zlevel: -2,
	zoom: 1.16,
	aspectScale: 0.82,
	layoutCenter: ['50%', '47%'],
	layoutSize: '80%',
	roam: false,
	silent: true,
	itemStyle: {
		normal: {
			borderColor: '#1f5a89',
			borderJoin:'round',
			borderWidth:1,
			areaColor: '#0a2640',
		},
	},
},{
	show: true,
	type: 'map',
	map: 'beijing',
	zlevel: -3,
	zoom: 1.16,
	aspectScale: 0.82,
	layoutCenter: ['50%', '48.5%'],
	layoutSize: '80%',
	roam: false,
	silent: true,
	itemStyle: {
		normal: {
			borderColor: '#123d60',
			borderJoin:'round',
			borderWidth:1,
			areaColor: '#0a2640',
		},
	},
},{
	show: true,
	type: 'map',
	map: 'beijing',
	zlevel: -5,
	zoom: 1.14,
	aspectScale: 0.84,
	layoutCenter: ['50%', '48%'],
	layoutSize: '80%',
	roam: false,
	silent: true,
	itemStyle: {
		normal: {
			borderJoin:'round',
			shadowBlur: 18,
			shadowColor: 'rgba(0,0,0,0.5)',
			shadowOffsetY:12,
		},
	},
}]

2、轮播部分代码

tools.loopShowTooltip(myCharts, option, { loopSeries: true, interval:4000});

interval: 间隔时间

四、技术细节

1、fontSize部分,封装的 1920尺寸的自适应代码,可以换成固定的尺寸。
2、地图的json数据和echarts-auto-tooltip.js可自己在网上下载,任何区域的地图均适用。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/7679.html
标签
评论
会员中心 联系我 留言建议 回顶部
复制成功!