• 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

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

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

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

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

    2.创建地图容器

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

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

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

    1. data () {
    2. return {
    3. mapdata: []
    4. }
    5. },

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

    1. // 获取记录数
    2. getCount(name,id) {
    3. var that = this
    4. var count = 0
    5. axios.get(this.global.apiUrl + '/web/article/list?page=1&limit=100&idChannel=' + id + '&sort=id&order=desc').then(function (res) {
    6. if (res.data.success && res.data.data.records.length > 0) {
    7. count = res.data.data.total
    8. }
    9. that.mapdata.push({
    10. 'name': name,
    11. 'id': id,
    12. 'value': count
    13. })
    14. })
    15. },

    4. 初始化地图

    1. // 注册石家庄地图
    2. this.$echarts.registerMap('sjz', sjz)
    3. // 初始化
    4. let myChart = this.$echarts.init(this.$refs.myChart)
    5. // option配置
    6. let option = {
    7. backgroundColor: 'transparent',
    8. title: {
    9. text: '示范基地数字地图',
    10. // subtext: '',
    11. // sublink: '',
    12. left: 'center',
    13. textStyle: {
    14. color: '#000'
    15. }
    16. },
    17. tooltip: {
    18. trigger: 'item'
    19. },
    20. visualMap: {
    21. min: 0,
    22. max: 20,
    23. text: ['High', 'Low'],
    24. realtime: false,
    25. calculable: true,
    26. inRange: {
    27. color: ['lightskyblue', 'yellow', 'orangered']
    28. }
    29. },
    30. series: [
    31. {
    32. name: '示范基地数',
    33. type: 'map',
    34. map: 'sjz',
    35. geoIndx: 0,
    36. aspectScale: 0.75,
    37. showLegendSymbol: false,
    38. // itemStyle: {
    39. // // 普通样式。
    40. // normal: {
    41. // // 点的颜色。
    42. // color: 'red'
    43. // },
    44. // // 高亮样式。
    45. // emphasis: {
    46. // // 高亮时点的颜色。
    47. // color: 'blue'
    48. // }
    49. // },
    50. label: {
    51. normal: {
    52. show: true
    53. },
    54. emphasis: {
    55. show: false,
    56. textStyle: {
    57. color: '#fff'
    58. }
    59. }
    60. },
    61. roam: true,
    62. animation: false,
    63. data: this.mapdata
    64. }
    65. ]
    66. }
    67. myChart.setOption(option)
    68. window.addEventListener('resize', function () {
    69. myChart.resize()
    70. })

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

    1. var that = this
    2. myChart.on('click', function (data) {
    3. var name = data.name
    4. var id = 0
    5. for (var i in that.mapdata) {
    6. if (that.mapdata[i].name == name) {
    7. id = that.mapdata[i].id
    8. }
    9. }
    10. // console.log(id)
    11. if(id) {
    12. var path = '/article/category/' + id
    13. that.$router.push({ path: path })
    14. }
    15. })

    6.调用地图初始化

    1. created () {
    2. this.$nextTick(() => {
    3. this.initCharts();
    4. })
    5. },

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

    1. mounted () {
    2. var s=0
    3. var v=10
    4. var sobj = setInterval(function(){
    5. s+=v;
    6. if(s>=100){
    7. clearInterval(sobj)
    8. that.initCharts()
    9. }
    10. $('.progress-bar').html(s+'%').css({'width':s+'%'})
    11. },100);
    12. }

  • 相关阅读:
    zabbix最新漏洞,可绕过认证登陆!
    必备技能——Excel如何设置打印剧中
    磨金石教育摄影技能干货分享|传统民居摄影作品欣赏
    C语言重点突破(3)字符串函数与内存函数的介绍
    文件包含漏洞全解
    JavaWeb之会话技术&会话固定攻击
    基于PLC除尘设备控制系统的设计
    代碼隨想錄算法訓練營|第四十四天|01背包问题 二维、01背包问题 一维、416. 分割等和子集。刷题心得(c++)
    python-web应用程序-Django数据库-操作表中的数据
    C#编程深入研究变量,类型和方法
  • 原文地址:https://blog.csdn.net/u011924274/article/details/124941788