Vue+ECharts实现可视化地图

Apache ECharts

一个基于 JavaScript 的开源可视化图表库,提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。

本示例,我们使用Vue+ECharts实现可视化地图的制作。

第一步:从 npm 获取Apache ECharts

npm install echarts --save

第二步:获取离线地图json包

这里推荐使用阿里云提供的数据可视化平台

https://datav.aliyun.com/portal/school/atlas/area_selector

 点击河北省下钻区域,再点击石家庄市下钻区域,获取石家庄市区域地图json格式数据,点击右侧“其它类型”下载json文件,将下载的json文件拷贝到工程目录下。

 第三步:全局或局域引入ECharts

在main.js中引入ECharts

import * as echarts from 'echarts';
Vue.prototype.$echarts = echarts;

第四步:在地图使用vue页进行编写

1.引入石家庄市区域地图json

import sjz from '@/json/sjzarea.json'

2.创建地图容器

<div class="row">
    <div class="col-sm-1 col-md-12 col-lg-12" id="myChart" ref="myChart" style="height: 600px;"></div>
</div>

设置容器的id、ref、宽度高度等属性

3. 设置(获取)地图series数据

data () {
    return {
      mapdata: []
    }
  },

例如:获取基地数量并写入mapdata

    // 获取记录数
    getCount(name,id) {
      var that = this
      var count = 0
      axios.get(this.global.apiUrl + '/web/article/list?page=1&limit=100&idChannel=' + id + '&sort=id&order=desc').then(function (res) {
        if (res.data.success && res.data.data.records.length > 0) {
          count = res.data.data.total
        }
        that.mapdata.push({
          'name': name,
          'id': id,
          'value': count
        })
      })
    },

4. 初始化地图

// 注册石家庄地图
this.$echarts.registerMap('sjz', sjz)
// 初始化
let myChart = this.$echarts.init(this.$refs.myChart)
// option配置
let option = {
  backgroundColor: 'transparent',
  title: {
    text: '示范基地数字地图',
    // subtext: '',
    // sublink: '',
    left: 'center',
    textStyle: {
      color: '#000'
    }
  },
  tooltip: {
    trigger: 'item'
  },
  visualMap: {
    min: 0,
    max: 20,
    text: ['High', 'Low'],
    realtime: false,
    calculable: true,
    inRange: {
      color: ['lightskyblue', 'yellow', 'orangered']
    }
  },
  series: [
    {
      name: '示范基地数',
      type: 'map',
      map: 'sjz',
      geoIndx: 0,
      aspectScale: 0.75,
      showLegendSymbol: false,
      // itemStyle: {
      //   // 普通样式。
      //   normal: {
      //     // 点的颜色。
      //     color: 'red'
      //   },
      //   // 高亮样式。
      //   emphasis: {
      //     // 高亮时点的颜色。
      //     color: 'blue'
      //   }
      // },
      label: {
        normal: {
          show: true
        },
        emphasis: {
          show: false,
          textStyle: {
            color: '#fff'
          }
        }
      },
      roam: true,
      animation: false,
      data: this.mapdata
    }
  ]

}

myChart.setOption(option)
window.addEventListener('resize', function () {
  myChart.resize()
})

        

5.设计地图点击触发事件

var that = this
myChart.on('click', function (data) {
  var name = data.name
  var id = 0
  for (var i in that.mapdata) {
    if (that.mapdata[i].name == name) {
      id = that.mapdata[i].id
    }
  }
  // console.log(id)
  if(id) {
    var path = '/article/category/' + id
    that.$router.push({ path: path })
  }

})

6.调用地图初始化

  created () {
    this.$nextTick(() => {
      this.initCharts();
    })
  },

或可以根据需求使用进度条进行调用地图初始化

mounted () {
    var s=0
    var v=10
    var sobj = setInterval(function(){
      s+=v;
      if(s>=100){
        clearInterval(sobj)
        that.initCharts()
      }
      $('.progress-bar').html(s+'%').css({'width':s+'%'})
    },100);
}

  • 11
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Vue Echarts毕业设计是一个基于VueEcharts框架进行开发的毕业设计项目。首先,Vue是一种用于构建用户界面的渐进式 JavaScript 框架,它使得开发者可以轻松地构建交互式的Web应用程序。 而Echarts是一个强大的数据可视化库,它提供了多种类型的图表和地图,可以帮助我们更直观地展示和呈现数据。结合VueEcharts的优势,我们可以打造一个功能丰富、高度可定制和易于使用的数据可视化应用程序。 在Vue Echarts毕业设计中,我们的目标是利用Vue框架组织项目结构,使用Echarts展示数据图表,并通过数据与图表的交互实现更高效的数据分析和决策支持。具体来说,我们可以设计一个仪表盘、图表展示等功能,用于显示各种数据指标的变化趋势、比较不同指标的差异等。 在实现过程中,我们可以使用Vue提供的组件化开发方式,将页面拆分为多个组件,利用组件间的数据传递和交互来实现不同功能的模块化加载和复用。同时,可以使用Echarts提供的丰富的配置项和API,对图表进行个性化的设置,以满足不同需求的数据展示效果。 除了基本的图表展示功能,我们还可以添加一些高级特性,例如数据筛选、交互式查询等,以增加用户对数据的理解和操作性。另外,我们还可以通过网络请求获取实时数据,并实现自动刷新展示,从而实现对数据变化的及时响应。 总之,Vue Echarts毕业设计是一个将VueEcharts有机结合的数据可视化项目,它可以帮助我们更好地利用现有数据进行分析和决策支持。通过合理的设计和开发,可以实现一个功能强大,操作便捷,美观大方的数据可视化应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值