热门标签 | 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地图的四种方式

 


推荐阅读
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • JavaScript中属性节点的类型及应用
    本文深入探讨了JavaScript中属性节点的不同类型及其在实际开发中的应用,帮助开发者更好地理解和处理HTML元素的属性。通过具体的案例和代码示例,我们将详细解析如何操作这些属性节点。 ... [详细]
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社区 版权所有