当前位置:   article > 正文

echarts5 没有map(实现中国地图+按需引入)_echarts5地图

echarts5地图

目录

一、解决新版本没有map的情况

1.1、方案一:两个版本同时存在并使用

1.2、方案二:引入map文件 

二、按需引入

三、实现中国地图


echart 官方文档

vue 项目通过 npm install echarts --save 安装的是最新版,在echarts4.9以后的版本中移除了map地图

        由于我的项目是按需引入,地图是其他图表组件开发完成之后说要加进来的,将当前版本卸载,去下载 4.9.0 这种方法容易出bug。

        npm uninstall echarts

        npm install echarts@4.9.0 --save

一、解决新版本没有map的情况

1.1、方案一:两个版本同时存在并使用

地图组件中使用Echarts4,其余组件均使用Echarts5 

vue引用多版本Echarts解决5+版本中国地图缺失问题_china.js_im nicezz的博客-CSDN博客vue引用多版本Echarts解决5+版本中国地图缺失问题https://blog.csdn.net/hzdz163/article/details/123041295第一步:安装两个版本

        npm install echarts@5.3.0
        npm install echarts4@npm:echarts@^4.9.0

第二步:在main.js中或者页面内注册

  1. import * as echarts from 'echarts'
  2. import * as echarts4 from 'echarts4'
  3. // 中国地图的json https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json
  4. import chinaMap from '@/assets/china.json'
  5. // 加载echarts4版本总的china.js
  6. import 'echarts4/map/js/china.js'
  7. // 注册地图
  8. echarts4.registerMap('china', chinaMap)

单独下载中国地图json数据的地址:https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json

第三步:使用

  1. <div id="map" style="width:500px;height:500px"></div>
  2. methods:{
  3. init(){
  4. const myChart = this.$echarts4.init(document.getElementById('map'));
  5. // 配置
  6. }
  7. },
  8. created(){
  9. this.init();
  10. }

1.2、方案二:引入map文件 

!!!echarts插件中没有map文件夹 - 简书在安装echarts,导入插件后发现没有map文件夹。本意是想导入中国地图 echarts现在已经不提供地图map包的下载了,但在HTML上是可以直接引用的,vue[http...https://www.jianshu.com/p/d92123be8b3d        新版本 V5 将 map 去掉了,那需要的地图的时候我们自己把 map 文件加到 echarts 插件中。

第一步:将 map 文件夹放到 node_modules 中的 echarts 文件里。

(1)获取 map 文件:链接: https://pan.baidu.com/s/1Vxv6mUgeT0qI_-CECkS3EA    密码: a6kn;

(2)获取 map 文件:安装 echarts@4.9.0,找到 node_modules/echarts,将 echarts 文件夹下的 map 文件夹复制出来。

 第二步:页面内使用

  1. import china from 'echarts/map/json/china.json'
  2. created(){
  3. echarts.registerMap('china', china);
  4. this.initMap();
  5. }

二、按需引入

在项目中引入 ECharts - 入门篇 - Handbook - Apache EChartshttps://echarts.apache.org/handbook/zh/basics/import/#%E6%8C%89%E9%9C%80%E5%BC%95%E5%85%A5-echarts-%E5%9B%BE%E8%A1%A8%E5%92%8C%E7%BB%84%E4%BB%B6        由于 echarts 只在一个页面中用到,按照官网链接上给的代码复制之后,我开了一个新 js 页面,专门存放 按需引入的 echarts 代码。

第一步:新建一个 js 文件,输入自己需要的组件 @/utils/echarts/index.js

  1. // 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。
  2. import * as echarts from "echarts/core";
  3. /** 引入柱状图and折线图图表,图表后缀都为 Chart */
  4. import { BarChart, LineChart,PieChart,MapChart } from "echarts/charts";
  5. // 引入提示框,标题,直角坐标系,数据集,内置数据转换器组件,组件后缀都为 Component
  6. import {
  7. TitleComponent,
  8. TooltipComponent,
  9. GridComponent,
  10. DatasetComponent,
  11. TransformComponent,
  12. LegendComponent,
  13. GeoComponent,
  14. VisualMapComponent
  15. } from "echarts/components";
  16. // 标签自动布局,全局过渡动画等特性
  17. import { LabelLayout, UniversalTransition } from "echarts/features";
  18. // 引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
  19. import { CanvasRenderer } from "echarts/renderers";
  20. // 注册必须的组件
  21. echarts.use([
  22. TitleComponent,
  23. TooltipComponent,
  24. GridComponent,
  25. DatasetComponent,
  26. TransformComponent,
  27. LegendComponent,
  28. GeoComponent,
  29. VisualMapComponent,
  30. BarChart,
  31. LabelLayout,
  32. UniversalTransition,
  33. CanvasRenderer,
  34. LineChart,
  35. PieChart,
  36. MapChart
  37. ]);
  38. // 导出
  39. export default echarts;

第二步:在页面中引入:import echarts from "@/utils/echarts";

        这样写出来可能不太明白自己需要的组件变量名称,可以按照下面方法去快速查找:

 (1)找图表:

 

 (2)找组件:

三、实现中国地图

        因为我这里只用到了 中国地图,所有值引入了 china.json,没有像 1.2 里面那样引入整个 map。 

  1. <div id="chinaMap" style='width:100%;height:622px'> </div>
  2. <script>
  3. import echarts from "@/utils/echarts";
  4. import china from '@/utils/echarts/china.json'
  5. export default {
  6. mounted(){
  7. this.initChinaMap();
  8. },
  9. methods:{
  10. // 中国地图
  11. initChinaMap(){
  12. echarts.registerMap('china', china); //注册地图数据
  13. const mychart = echarts.init(document.getElementById("chinaMap"));
  14. const option = {
  15. //浮动提示框
  16. title: { text: '全国各地信息统计情况',left: "4%",top: "3%"},
  17. tooltip:{
  18. backgroundColor:"rgba(50,50,50,0.7)",
  19. textStyle:{color:"#fff"},
  20. formatter(params, ticket, callback){
  21. // params.data 就是series配置项中的data数据遍历
  22. let value=0,rukuNum=0,chukuNum=0;
  23. if(params.data){
  24. value = params.data.value;
  25. rukuNum = params.data.rukuNum;
  26. chukuNum = params.data.chukuNum;
  27. }
  28. let html = `<div>入库数量:${rukuNum}</div>
  29. <div>出库数量:${chukuNum}</div>`
  30. return html;
  31. }
  32. },
  33. visualMap: {
  34. type: "piecewise",
  35. min:0,
  36. max:5000,
  37. itemWidth: 40,
  38. bottom:60,left:20,
  39. pieces: [ // 自定义『分段式视觉映射组件(visualMapPiecewise)』的每一段的范围,以及每一段的文字,以及每一段的特别的样式
  40. {gt: 900, lt: 1000, label: '900-1000', color: '#6ad86e'}, // (900, 1000]
  41. {gt: 500, lt: 900, label: '500-900', color: '#9adcfa'}, // (500, 900]
  42. {gt: 310, lt: 500, label: '310-500', color: '#ffeb3b'}, // (310, 500]
  43. {gt: 100, lt: 300, label: '100-300', color: '#ff9800'}, // (200, 300]
  44. {gt: 0, lt: 100, label: '>100', color: 'orangered'} // (10, 200]
  45. ]
  46. },
  47. geo:{
  48. map: "china",
  49. zoom:1.2,
  50. label:{show:true},
  51. itemStyle:{
  52. borderColor: 'rgba(0, 0, 0, 0.2)',
  53. // areaColor: '#8DBFEB', //地图的背景色
  54. emphasis: { // 高亮状态下的多边形和标签样式
  55. shadowBlur: 20,
  56. shadowColor: 'rgba(0, 0, 0, 0.5)'
  57. }
  58. }
  59. },
  60. series: [
  61. {name:"",type:"map",geoIndex:0,label:{show:true},data:[
  62. {"name": "北京", "value": 42, "rukuNum":42,"chukuNum":8},
  63. {"name": "上海", "value": 688, "rukuNum":688,"chukuNum":299},
  64. {"name": "黑龙江", "value": 7, "rukuNum":7,"chukuNum":0}
  65. ]}
  66. ]
  67. }
  68. mychart.setOption(option);
  69. window.addEventListener("resize", function () { mychart.resize(); });
  70. },
  71. }
  72. }
  73. </script>

 注意点:

  1. 记住要使用 registerMap 注册地图数据。【官方文档地址链接

  2. 悬浮框提示框 formatter文档:【文档地址
  3. 地图背景色:解除 “areaColor: '#8DBFEB',  //地图的背景色” 的注释,就能使地图变色。

 其他:

vue项目 echarts 中国地图,vue项目 echarts中国地图点击省份显示对应它的各个市,从零开始。_vue 中国地图_努力中的小曾的博客-CSDN博客我先说一下我的需求把:使用echarts图表或者百度地图实现点击省份展示对应的市级。到了市级以后点击各个市显示对应的公司。最后我还是使用了echarts来做。首先我们先看看效果图,如果是你的菜,麻烦点个赞,让更多的小伙伴一起学习起来。如图gif:看完效果图,我们来实现把,具体我是自己起了一个vue项目工程我们先把echarts依赖先装一下把,npm install echarts装完以后,看看自己的package.json的版本,我怕到时候版本对应不上,所以用代码贴出来,图的话怕以后https://blog.csdn.net/bazcsx/article/details/121582468

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/108771
推荐阅读
相关标签
  

闽ICP备14008679号