echarts实现中国地图区域分布图 vue + echarts

需求如下:
做一个全国各省对我们产品使用的统计图表。已省为区域划分。
在这里插入图片描述

安装echarts

我的是用webpack安装的依赖。
所以直接下载安装echarts的插件就好了。

npm install echarts --save

如果你没有使用webpack来安装,可以直接进入到echarts官网进行下载。之后,引入到自己的项目

安装这一步就不多说了。接下来,就是在项目中使用。
由于我项目中需要用的echarts的组件还挺多的,所在全局引用并且注册了。
在项目中main.js 文件中,引入echarts

main.js中
import echarts from 'echarts' // 这一步是引入echarts的插件
Vue.prototype.$echarts = echarts // 这一步是为了能在全局直接使用

引入成功之后,我们进入到使用的组件页面。
taskData.vue 组件内部

html部分:
<div id="regionCharts" :style="{width: '100%', height: '400px'}"></div> // 写一个绘制地图的标签。

JS部分
mounted () {
	this.drawregionCharts() // 在页面进入的时候,先请求后端数据再调用这个函数,但由于我这里是写死的假数据,于是就直接调用了
}
methods: {
drawregionCharts () {
	let dataList = [
                {name: '北京', value: 200}, 
                {name: '四川', value: 800}
            ] // 该数据是从服务器获取到的数据
            let option = {
                tooltip: {
                    trigger: 'item',
                    formatter: function (params) {
                        return params.name;//自行定义formatter格式
                    }
                },
                visualMap: {
                    min: 0,
                    max: 1500,
                    left: 'left',
                    top: 'bottom',
                    text: ['高', '低'],//取值范围的文字
                    inRange: {
                    color: ['#e0ffff', '#006edd']//取值范围的颜色
                    },
                    show: true//图注
                },
                geo: {
                    map: 'china',
                    roam: false,//不开启缩放和平移
                    zoom: 1.23,//视角缩放比例
                    label: {
                    normal: {
                        show: true,
                        fontSize: '10',
                        color: 'rgba(0,0,0,0.7)'
                    }, emphasis: {
                        textStyle: {
                        color: '#fff'
                        }
                    }
                },
                itemStyle: {
                    normal: {
                        borderColor: 'rgba(0, 0, 0, 0.2)'
                    },
                    emphasis: {
                        areaColor: '#F3B329',//鼠标选择区域颜色
                        shadowOffsetX: 0,
                        shadowOffsetY: 0,
                        shadowBlur: 20,
                        borderWidth: 0,
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    }
                    }
                },
                series: [
                    {
                    name: '信息量',
                    type: 'map',
                    geoIndex: 0,
                    data: dataList
                    }
                ]

            }
            let mychart = this.$echarts.init(document.getElementById('regionCharts'))
            console.log(mychart)
            mychart.setOption(option)
            this.$nextTick(() => {
                mychart.resize() // 这里是为了解决,tab刷新的时候,图表不刷新的问题。
            })
	}
}

代码到这里并没有结束。
当我打开我的页面时候,发现区域图并没有显示。


但此时图示已经生效了,说明我的写法和引用都是成功的。
在网上查找问题的时候,发现,说是如果使用的是中国地图,那么需要引入china.js.但china.js链接的地方是乱码的。
于是我看了一下我的插件下载包,想要碰运气看看,这个区域数据是否已经跟着echarts下载了。
在这里插入图片描述
果然被我找到了。那又该怎么使用呢。
首先回到main.js中去引入这个china.json的文件。

import china from 'echarts/map/json/china.json' // 引入json文件
echarts.registerMap('china', china) // 在echarts中注册使用这个文件

再次查看页面效果:
在这里插入图片描述
这就出来啦!
下面贴下完整的代码图;
main.js
在这里插入图片描述
html 组件
在这里插入图片描述
html 组件 JS部分
在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值