热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue引入echarts地图的四种方式

一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还

一、vue中引入echart

1、安装echarts: npm install echarts --save

2、在main.js文件中引入echarts实例:   Vue.prototype.$echarts = echarts

3、在需要用到echart图形的vue文件中引入:   import echarts from "echarts";

4、如果用到map(地图),还需要导入地图对应的的JS文件:

  import '../../../node_modules/echarts/map/js/province/yunnan.js'
  import '../../../node_modules/echarts/map/js/province/fujian.js'

5、map(地图)对应的资源文件有两种,一种是导入JS文件,一种是读取JSON文件,在vue项目中,map对应的资源文件存在于node_moudles中的echarts文件夹,当然在vue中可以通过http请求去读取地图对应的JSON文件,但是要求JSON文件必须在static文件中,不然http请求失败。


二、项目的目录结构:

vue引入echarts地图的四种方式

 

 

 


三、引入echarts的四种方式:

<template>
  <div>
    <div class="echarts">
      <div class="box" ref="WorldEchart">div>
      <div class="box" ref="ChinaEchart">div>
       <div class="box" ref="YunnanEChart">div>
      <div class="box" ref="GuangXiEChart">div>

    div>
  div>
template>
<script>
  import echarts from "echarts";
  import '../../../node_modules/echarts/map/js/province/yunnan.js'
  import '../../../node_modules/echarts/map/js/province/fujian.js' 
  export default {
    data() {
      return {
        world: require('../../../node_modules/echarts/map/json/world.json'), //地图json数据
      }
    },
    mounted() {
      this.ByRequired(this.world); //通过require读取json文件
      this.ByStaticJson();//通过post请求方式读取json文件,但要求json文件必须在vue工程下的static文件夹
      this.ByGeoRegister();//通过geo设置地图属性再注册到echart实例中
      this.ByMapName();//通过直接设置 map: "地图名称", 这里需要注意世界地图和全国地图需要用world和china单词,各个
               省会用中文,直接使用地图名称必须保证已经引入地图对应的js文件,即 import '../../**/.js(推荐使用这种)
},
    beforeDestroy() {
      if (!this.chart) {
        return;
      }
      this.chart.dispose(); //销毁echart实例
      this.chart = null;
    },
    methods: {
      ByRequired(world){
                  this.$nextTick(()=>{
                    var myChart = this.$echarts.init(this.$refs.WorldEchart);
                    echarts.registerMap('dalian', world,{});
                    myChart.setOption({

                      series: [{
                          name:'大连市',
                          label: {
                              normal: {
                                  show: true,
                              },
                              emphasis: {
                                  show: true
                              }
                          },
                          itemStyle: {
                              color: '#ddb926'
                          },
                          type: 'map',
                          zoom: 1,//缩放比例能控制echart图形在dom中的大小
                          roam: true,
                          mapType: 'dalian',
                          emphasis: {
                              label: {
                                  show: true
                              }
                          },
                          // 文本位置修正
                          textFixed: {
                              Alaska: [20-20]
                          },
                          data: [{
                                   name: '瓦房店市',
                                   value: 4822023
                               },
                               {
                                   name: '普兰店市',
                                   value: 731449
                               },
                               {
                                   name: '庄河市',
                                   value: 6553255
                               },
                               {
                                   name: '金州区',
                                   value: 949131
                               },
                               {
                                   name: '长海县',
                                   value: 8041430
                               },
                               {
                                   name: '甘井子区',
                                   value: 5187582
                               },
                               {
                                   name: '沙河口区',
                                   value: 3590347
                               },
                               {
                                   name: '西岗区',
                                   value: 917092
                               },
                               {
                                   name: '中山区',
                                   value: 632323
                               },
                               {
                                   name: '旅顺口区',
                                   value: 9317568
                               }
                           ]
                      }],
                      //右下角数值条
                      visualMap: {
                          left: 'right',
                          min: 1,
                          max: 100,
                          inRange: {
                              color: ['#313695''#4575b4''#74add1''#abd9e9''#e0f3f8''#ffffbf''#fee090''#fdae61''#f46d43''#d73027''#a50026']
                          },
                         //text: ['High', 'Low'], // 文本,默认为数值文本
                          calculable: true
                      },
                      tooltip: {
                          trigger: 'item',
                          showDelay: 0,
                          transitionDuration: 0.2,
                          formatter: function(params) {
                              var value = (params.value + '').split('.');
                              value = value[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,');
                              return params.seriesName + '
' + params.name + '' + value;                     }                 },             });        })   }, ByStaticJson() { let myChartbyjson = echarts.init(this.$refs.ChinaEchart); //这里是为了获得容器所在位置 var mapJsonPath = "/static/china.json"; //json文件的相对路径 $.get(mapJsonPath, function(mapJson) { echarts.registerMap("china", mapJson); // 注册地图 let option = { zoom:2, series: [{ name: this.selCity, itemStyle:{ normal:{ label:{ show:true, textStyle: { color: "#231816" } }, areaStyle:{color:'#B1D0EC'}, color:'#ff0000', borderColor:'#dadfde'//区块的边框颜色 }, emphasis:{//鼠标hover样式 label:{ show:true, textStyle:{ color:'#fa4f04' } } } }, type: "map", mapType: "china", // 自定义扩展图表类型 label: { show: true, }, }, ], }; myChartbyjson.setOption(option); myChartbyjson.on('click', function (param) { alert(param.name); //遍历取到provincesText 中的下标 去拿到对应的省js for(var i= 0 ; i < provincesText.length ; i++ ){ if(param.name == provincesText[i]){ //显示对应省份的方法 // showProvince(provinces[i]) ; showProvince(provinces[i],provincesText[i]) break ; } } }); }); }, ByGeoRegister() { let myChart = echarts.init(this.$refs.YunnanEChart); //这里是为了获得容器所在位置 window.onresize = myChart.resize; myChart.setOption({ // 进行相关配置 backgroundColor: "#02AFDB", tooltip: {}, // 鼠标移到图里面的浮动提示框 dataRange: { show: false, min: 0, max: 1000, text: ['High', 'Low'], realtime: true, calculable: true, color: ['orangered', 'yellow', 'lightskyblue'] }, geo: { // 这个是重点配置区 map: '云南', // 表示中国地图 roam: true, label: { normal: { show: true, // 是否显示对应地名 textStyle: { color: 'rgba(0,0,0,0.4)' } } }, itemStyle: { normal: { borderColor: 'rgba(0, 0, 0, 0.2)' }, emphasis: { areaColor: null, shadowOffsetX: 0, shadowOffsetY: 0, shadowBlur: 20, borderWidth: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } }, series: [{ type: 'scatter', coordinateSystem: 'geo' // 对应上方配置 }, { name: '启动次数', // 浮动框的标题 type: 'map', geoIndex: 0, data: [{ "name": "北京", "value": 599 }, { "name": "上海", "value": 142 }, { "name": "黑龙江", "value": 44 }, { "name": "深圳", "value": 92 }, { "name": "湖北", "value": 810 }, { "name": "四川", "value": 453 }] } ] }) }, ByMapName() { let that = this; this.mychart = this.$echarts.init(this.$refs.GuangXiEChart); // 绘制图表 this.mychart.setOption({ backgroundColor: "#404a59", zoom:2, title: { text: "福建", top: 25, left: "center", textStyle: { fontSize: 25, fontWeight: 650, color: "#fff", }, }, tooltip: { trigger: "item", formatter: function(val) { return "
人数:
" + 1 + ""; }, }, toolbox: { show: true, orient: "vertical", left: "right", top: "center", feature: { dataView: { readOnly: false }, restore: {}, saveAsImage: {}, }, }, series: [{ type: "map", map: "福建", //这里需要注意呀, //mapType: "浙江", // 是否开启鼠标缩放和平移漫游 默认不开启 itemStyle: { normal: { areaColor: "#323c48", borderColor: "#111", }, emphasis: { areaColor: "#2a333d", label: { show: true, color: "white", }, }, }, roam: true, top: 70, label: { show: true, // 是否显示对应地名 }, data: this.cityDatas, }, ], }); this.mychart.on("click", function(params) { //地图添加点击事件,当点击区域块的时候,params.name能够取到区域的名称:云南,北京... alert(params.data.code); console.log(JSON.stringify(params)); }); } } } script> <style> .echarts{ position:absolute; top:0; left:0; width: 100%; height:100%; } .box{ width: 50%; height: 50%; float:left; line-height: inherit; } style>

 


四、界面渲染效果:

vue引入echarts地图的四种方式

 


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
author-avatar
JSHGDF5649
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有