echarts 全国地图视觉映射组件

今天优化了之前开发好的地图功能,增加了视觉映射组件及地图上显示数据。
在这里插入图片描述
接下来我们看下代码:

视觉映射组件:

visualMap: {
		min: 0, //最小值
		max: 1000, //最大值
		orient: "vertical", //图例模式
		left: 26,
		bottom: 26,
		showLabel: true, //显示图例文本
		precision: 0, //数据展示无小数点
		itemWidth: 20, //图例宽度
		itemHeight: 15, //图例高度
		textGap: 10, //图例间距
		inverse: true, //数据反向展示
		hoverLink:false,
		inRange: { //选中图例后背景半透明
			color: ['rgba(3,4,5,0.4)'],
		},
		pieces: [{
				gt: 1001,
				label: ">1000次",
				color: "#7b1c1c",
			},
			{
				gte: 500,
				lte: 1000,
				label: "500-1000次",
				color: "#bd4141",
			},
			{
				gte: 100,
				lte: 499,
				label: "100-499次",
				color: "#e76262",
			},
			{
				gte: 10,
				lte: 99,
				label: "10-99次",
				color: "#ff9595",
			},
			{
				gte: 1,
				lte: 9,
				label: "1-9次",
				color: "#ffc1c1",
			},
			{
				lte: 0,
				label: "0次",
				color: "#ffe5e5",
			},
		],
	},

lt 小于, gt 大于,lte 小于等于,gte 大于等于

地图上展示数值

series: [{
	itemStyle: {
			normal: {
				label: {
					 show: true,
					 formatter:'{c}' + '次'+'\n{b}',
				 },	
			},
		},
}]

全部代码如下:

echarts.registerMap('china', chinaJson);
var chart = echarts.init(document.getElementById('chinaMap'));
var data1 = [
	{
		name: '北京',
		lable1: '异常次数',
		value: '200',
		lable2: '异常终端',
		numbar: '100'
	},
	{
		name: '上海',
		lable1: '异常次数',
		value: '200',
		lable2: '异常终端',
		numbar: '100'
	},
	{
		name: '天津',
		lable1: '异常次数',
		value: '200',
		lable2: '异常终端',
		numbar: '100'
	},
	{
		name: '重庆',
		lable1: '异常次数',
		value: '200',
		lable2: '异常终端',
		numbar: '100'
	},
	{
		name: '河北',
		lable1: '异常次数',
		value: '10',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '山东',
		lable1: '异常次数',
		value: '2',
		lable2: '异常终端',
		numbar: '8'
	},
	{
		name: '陕西',
		lable1: '异常次数',
		value: '200',
		lable2: '异常终端',
		numbar: '100'
	},
	{
		name: '山西',
		lable1: '异常次数',
		value: '200',
		lable2: '异常终端',
		numbar: '100'
	},
	{
		name: '辽宁',
		lable1: '异常次数',
		value: '2000',
		lable2: '异常终端',
		numbar: '1000'
	},
	{
		name: '吉林',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '黑龙江',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '宁夏',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '江苏',
		lable1: '异常次数',
		value: '0',
		lable2: '异常终端',
		numbar: '0'
	},
	{
		name: '河南',
		lable1: '异常次数',
		value: '0',
		lable2: '异常终端',
		numbar: '0'
	},
	{
		name: '安徽',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '浙江',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '湖南',
		lable1: '异常次数',
		value: '0',
		lable2: '异常终端',
		numbar: '0'
	},
	{
		name: '湖北',
		lable1: '异常次数',
		value: '620',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '甘肃',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '青海',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '西藏',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '新疆',
		lable1: '异常次数',
		value: '2000',
		lable2: '异常终端',
		numbar: '1000'
	},
	{
		name: '内蒙古',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '贵州',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '四川',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '江西',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '福建',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '广东',
		lable1: '异常次数',
		value: '20',
		lable2: '异常终端',
		numbar: '10'
	},
	{
		name: '广西',
		lable1: '异常次数',
		value: '0',
		lable2: '异常终端',
		numbar: '0'
	},
	{
		name: '云南',
		lable1: '异常次数',
		value: '0',
		lable2: '异常终端',
		numbar: '0',
	},
	{
		name: '海南',
		lable1: '异常次数',
		value: '0',
		lable2: '异常终端',
		numbar: '0'
	},
	{
		name: '香港',
		lable1: '异常次数',
		value: '0',
		lable2: '异常终端',
		numbar: '0'
	},
	{
		name: '澳门',
		lable1: '异常次数',
		value: '0',
		lable2: '异常终端',
		numbar: '0'
	},
	{
		name: '台湾',
		lable1: '异常次数',
		value: '0',
		lable2: '异常终端',
		numbar: '0'
	}
];
chart.setOption({
	tooltip: {
		trigger: 'item',
		padding: [10, 15],
		backgroundColor: '#fff',
		borderWidth: .25, //区域边框宽度
		borderColor: '#666', //区域边框颜色
		shadowColor: '#d2d2d2', //底色阴影
		shadowOffsetX: 5,
		shadowOffsetY: 5,
		textStyle: {
			color: '#000',
			fontSize: 16,
			fontWeight: 'bolder'
		},
		formatter: function(val) {
			return val.data.name + '<div class="bjMap">' +
				'<div class="">' +
				'<p>' + val.data.lable1 + ':' + '</p>' +
				'<p>' + val.data.value + '次' + '</p>' +
				'</div>' +
				'<div class="">' +
				'<p>' + val.data.lable2 + ':' + '</p>' +
				'<p>' + val.data.numbar + '次' + '</p>' +
				'</div>' +
				'</div>'
		}
	},
	visualMap: {
		min: 0, //最小值
		max: 1000, //最大值
		orient: "vertical", //图例模式
		left: 26,
		bottom: 26,
		showLabel: true, //显示图例文本
		precision: 0, //数据展示无小数点
		itemWidth: 20, //图例宽度
		itemHeight: 15, //图例高度
		textGap: 10, //图例间距
		inverse: true, //数据反向展示
		hoverLink:false,
		inRange: { //选中图例后背景半透明
			color: ['rgba(3,4,5,0.4)'],
		},
		pieces: [{
				gt: 1001,
				label: ">1000次",
				color: "#7b1c1c",
			},
			{
				gte: 500,
				lte: 1000,
				label: "500-1000次",
				color: "#bd4141",
			},
			{
				gte: 100,
				lte: 499,
				label: "100-499次",
				color: "#e76262",
			},
			{
				gte: 10,
				lte: 99,
				label: "10-99次",
				color: "#ff9595",
			},
			{
				gte: 1,
				lte: 9,
				label: "1-9次",
				color: "#ffc1c1",
			},
			{
				lte: 0,
				label: "0次",
				color: "#ffe5e5",
			},
		],
	},
	geo: {
		map: 'china',
		zoom: 1.2,
		roam: false,
		itemStyle: {
			normal: {
				borderWidth: 2, //设置外层边框
				borderColor: '#444',
				shadowColor: '#d2d2d2', //底色阴影
				shadowOffsetX: 0,
				shadowOffsetY: 10
			}
		}
	},
	series: [{
		type: 'map',
		map: 'china',
		zoom: 1.2,
		selectedMode: false,
		label: {
			normal: {
				show: true, //显示省份标签
				textStyle: {
					color: "#000",
					fontSize:13
				} //省份标签字体颜色
			},
			emphasis: { //对应的鼠标悬浮效果
				show: true,
				textStyle: {
					color: "#fff"
				}
			}
		},
		itemStyle: {
			normal: {
				borderWidth: .35, //区域边框宽度
				borderColor: '#444', //区域边框颜色
				areaColor: "#ffe5e5", //区域颜色
				label: {
					 show: true,
					 formatter:'{c}' + '次'+'\n{b}',
				 },	
			},
			emphasis: {
				borderWidth: .5, //鼠标滑过区域,区域边框宽度
				areaColor: "#4a1111", //鼠标滑过区域背景色
				borderWidth: 1, //鼠标划过区域 区域边框
			}
		},
		data: data1
	}],
});
window.addEventListener("resize", function() {
	echarts.init(document.getElementById('chinaMap')).resize();
});

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值