当前位置: 首页 > news >正文

vue+echarts.js 实现中国地图——根据数值表示省份的深浅——技能提升

最近在写后台管理系统,遇到一个需求就是 中国地图根据数值 展示深浅颜色。

效果图如下:
在这里插入图片描述
直接上代码:

1.html部分

<div id="Map"></div>

2.css部分——一定要设置尺寸

#Map {width: 100%;height: 400px;
}

3.js部分

3.1 安装echarts插件——不要安装最新版本,要指定版本,我这边是5.4.1版本

npm install echarts@5.4.1--save
如果npm失败,则可以使用cnpm试一下
cnpm install echarts@5.4.1 --save

3.2 在main.js中挂载到vue原型上——先引入,再挂载

//main.js中的内容
import echarts from 'echarts';
Vue.prototype.$echarts = echarts;

3.3 在其他页面使用——引入地图数据

import regions from '@/utils/china';

引入的地图数据可以通过 3d中国地图数据:http://t.csdn.cn/63wZB 里面,在评论区留下邮箱,然后我看到后,会把数据发到指定邮箱里面。

3.4 echarts使用地图数据

var chart = this.$echarts.init(document.getElementById('Map'));
this.$echarts.registerMap('china', regions); // 注册矢量地图数据
getProvinceDataAll().then((res) => {//这个接口是为了拿全中国的数据,需要替换成自己的数据来源let maxArr = res.sort(this.sortBy('value'));//sortBy是根据value字段对对象数组进行排序console.log('maxArr', maxArr);var option = {backgroundColor: '#fff', //画布背景颜色tooltip: {show: true,trigger: 'item',formatter: (data) => {return `<h3>${data}</h3>`;},data: maxArr,},visualMap: {min: 0,max: maxArr[0].value,text: ['高', '低'],realtime: false,calculable: true,inRange: {color: ['#8dc1f1', '#0e31a4'],},textStyle: {color: '#333',},left: 20,bottom: 10,},// geo: {//   map: 'china',//   //   roam: true,//   zoom: 1.2,//   viewControl: {//     rotateSensitivity: 0, //禁止旋转地图//     //下面的四个参数 可以实现禁止缩放地图//     projection: 'orthographic',//     orthographicSize: 110,//     maxOrthographicSize: 110,//     minOrthographicSize: 110,//   },//   label: {//     normal: {//       show: false,//       textStyle: {//         color: 'rgba(0,0,0,0.4)',//       },//     },//   },//   itemStyle: {//     normal: {//       borderColor: '#999',//       shadowColor: '#f90',//     },//     emphasis: {//       show: true,//       areaColor: '#f90',//       label: {//         show: true,//       },//       shadowOffsetX: 0,//       shadowOffsetY: 0,//       shadowBlur: 20,//       borderWidth: 0,//       shadowColor: 'rgba(0, 0, 0, 0.5)',//     },//   },// },series: [{name: '浏览量',type: 'map',map: 'china',// roam: true,// coordinateSystem: 'geo',geoIndex: 0,tooltip: { show: false },label: {normal: {formatter: '{b}\r\n{c}',position: 'right',show: false,},emphasis: {show: true,},},data: maxArr,},],};chart.setOption(option);
});

3.5 对象数组排序

sortBy(field) {return function (a, b) {return b[field] - a[field];};
},

最终展示的数据结构如下:
在这里插入图片描述
最终效果图如下:
在这里插入图片描述
鼠标移入后的效果如下:
在这里插入图片描述

完成!!!

http://www.lryc.cn/news/36058.html

相关文章:

  • [oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯
  • Easy Deep Learning——卷积层
  • 深入分析@Bean源码
  • Web Components学习(1)
  • Element-UI实现复杂table表格结构
  • Azure AD 与 AWS 单一帐户SSO访问集成,超详细讲解,包括解决可能出现的错误问题
  • lvgl 笔记 按钮部件 (lv_btn) 和 开关部件 (lv_switch)
  • Python高频面试题——生成器(最通俗的讲解)
  • 品牌软文怎么写?教你几招
  • Kubernetes (k8s) 污点(Taint)介绍、示例
  • Docker学习(二十一)构建 java 项目基础镜像
  • python中的上下文原理
  • 可复用测试用例描述要素
  • lnmp中遇到open_basedir配置无效问题
  • SpringBoot【知识加油站】---- REST开发
  • 三 Go的语言容器
  • 2023年全国最新会计专业技术资格精选真题及答案16
  • 模板进阶(仿函数,特化等介绍)
  • Beats:在 Docker 中同时部署 Metricbeat 和 Elasticsearch
  • 编码技巧——Redis Pipeline
  • ArcGIS制图技巧:制图入门与点、线、面状符号制作
  • Java基础 关于字典数据维护接口设计
  • 从零开始学架构——复杂度来源
  • 什么时候需要分表分库?
  • 冰刃杀毒工具使用实验(29)
  • 聊聊图像分割的DICE和IOU指标
  • 软件设计师教程(十)计算机系统知识-结构化开发
  • 链表OJ之 快慢指针法总结
  • C++STL详解(五)——list的介绍与使用
  • 进程和进程的调度