vue使用echarts与echarts-gl实现3d地图与 3d柱状图

2023-11-16

目录

前言

一、下载echarts与echarts gl

二、vue引入与页面使用

1.引入

2.页面引入echarts-gl

三、下载地图数据

四、使用地图

1、html初始化地图放入位置:

2、data创建变量

3、创建地图

4、钩子函数渲染地图

5、渲染完成效果

总结


前言

提示:本项目使用vue,请提前搭建好vue项目

本次需求为实现一个有立体效果的地图,上面需有柱状图表示当地的数据


提示:以下是本篇文章正文内容,下面案例可供参考

一、下载echarts与echarts gl

在终端直接输入npm install echarts下载最新版本echarts

输入npm install echarts-gl 下载3d主张图插件

npm install echarts

npm install echarts-gl

二、vue引入与页面使用

1.引入

在main.js文件下引入echarts

代码如下(示例):

import * as echarts from 'echarts'

添加到vue原型以实现全局使用

Vue.prototype.$echarts = echarts

2.页面引入echarts-gl

代码如下(示例):

import "echarts-gl"

三、下载地图数据

前往http://datav.aliyun.com/portal/school/atlas/area_selector下载需要的地图数据

这边下载的是 四川省自贡市的地图数据,直接下载json文件即可

下载后放在项目文件夹里后,在页面引入

import zigong from '../utils/zigongshi.json'

四、使用地图

1、html初始化地图放入位置:

<div id="cityChart" ref="cityMap" :style="{width: '100%', height: '1000px'}"></div>

2、data创建变量

data() {
  return {
    cityChart: ''
  }
},

3、创建地图

// 地图
getCityMap() {
    this.cityChart = this.$echarts.init(this.$refs.cityMap);
    this.$echarts.registerMap("zigong", zigong);

    let option = {
        tooltip: {},
        textStyle: {
           color: '#fff', // 高亮时标签颜色变为 白色
           fontSize: 16, // 高亮时标签字体 变大
        },
        geo3D: {
           map: "zigong", //注册地图的名字
           roam: true, //开启鼠标缩放和平移漫游。默认不开启
           itemStyle: {
               color: "#4189f2", // 背景颜色
               opacity: 1, //透明度
               borderWidth: 0.4,
               borderColor: "#fff",
           },
           //地图单个板块标签样式
           label: {
               show: false,
               textStyle: { // 字体样式
                  color: '#ffffff',
                  opacity: 1,
               },
           },
           //鼠标放入高亮时地图板块的样式
           emphasis: {
               label: {
                  show: false //是否显示
               }
           },
           // 每个地图板块单独设置背景颜色
           regions: [
               {
                   name: '荣县',
                   itemStyle: {
                       color: '#5064F7'
                   }
               },
               {
                   name: '贡井区',
                   itemStyle: {
                       color: '#9E64F7'
                   }
               },
               {
                   name: '自流井区',
                   itemStyle: {
                       color: '#5A64F1'
                   }
               },
               {
                   name: '大安区',
                   itemStyle: {
                       color: '#3D9634'
                   }
               },
               {
                   name: '高新区',
                   itemStyle: {
                       color: '#DE0000'
                   }
               },
               {
                   name: '沿滩区',
                   itemStyle: {
                       color: '#F5C25F'
                   }
               },
               {
                   name: '富顺县',
                   itemStyle: {
                       color: '#228AA0'
                   }
               },
          ],
          //光照阴影
          shading: "lambert",
          light: {
               main: {
                   color: "#fff", //光照颜色
                   intensity: 1, //光照强度
                   shadow: true, //是否显示阴影
                   alpha: 60,
                   beta: 10,
               },
               ambient: {
                   intensity: 0.3,
               },
          },
          //鼠标控制地图旋转
          viewControl: {
               projection: "perspective", // 投影方式
               autoRotate: false, // 是否开启地图自动旋转
               autoRotateDirection: "cw", // 地图自动旋转的方向
               autoRotateSpeed: 5, // 地图自动旋转的速度
               autoRotateAfterStill: 3, // 鼠标离开后多少秒自动开启旋转
               damping: 0, // 鼠标进行旋转,缩放等操作时延迟时间
               rotateSensitivity: 10, // 旋转操作的灵敏度
               zoomSensitivity: 10, // 缩放操作的灵敏度
               panSensitivity: 10, // 平移操作的灵敏度
               panMouseButton: "left", // 平移操作使用的鼠标按键
               rotateMouseButton: "left", // 旋转操作使用的鼠标按键
               distance: 90, // 默认视角距离主体的距离
               minDistance: 40, // 视角通过鼠标控制能拉近到主体的最小距离
               maxDistance: 145, // 视角通过鼠标控制能拉远到主体的最大距离
               alpha: 40, // 视角绕 x 轴,即上下旋转的角度
               beta: 15, // 视角绕 y 轴,即左右旋转的角度
               minAlpha: -720, // 上下旋转的最小 alpha 值
               maxAlpha: 720, // 上下旋转的最大 alpha 值
               minBeta: -720, // 左右旋转的最小 beta 值
               maxBeta: 720, // 左右旋转的最大 beta 值
               center: [0, 0, 0], // 视角中心点
               animation: true, // 是否开启动画
               animationDurationUpdate: 1000, // 过渡动画的时长
               animationEasingUpdate: "cubicInOut", // 过渡动画的缓动效果
          },
          silent: false,
          regionHeight: 2, //修改整个地图的三维高度
      },
      // 3d柱状图实现
      series: [
          {
              name: 'bar3D',
              type: 'bar3D',
              coordinateSystem: 'geo3D',
              barSize: 1, //柱子粗细
              shading: 'lambert',
              opacity: .7, // 柱子透明度
              bevelSize: 0.1,
              // 柱子上标签样式
              label: {
                  show: true,
                  distance: 0, //文字离柱子的距离
                  formatter(param) {
                      let num = param.data.value[2]
                      return param.name + num;
                  },
                  // 文字样式
                  textStyle: {
                     color: '#fff',
                     fontSize: 16,
                  }
              },
              emphasis: {//柱子高亮状态的标签和样式配置。
                  label: {
                     show: false,
                     textStyle: {
                         fontSize: 20,
                     }
                  }
              },
              // 柱子样式
              itemStyle: {
                  color: '#fff',
                  opacity: 1
              },
              data: [
                  {
                      name: "荣县", //柱子的名字
                      value: [104.41, 29.45, 1] //柱子显示在地图的位置(经纬度),柱子的值
                  },
                  {
                      name: "贡井区",
                      value: [104.63, 29.34, 2]
                  },
                  {
                      name: "自流井区",
                      value: [104.69, 29.24, 3]
                  },
                  {
                      name: "大安区",
                      value: [104.88, 29.41, 4]
                  },
                  {
                      name: "沿滩区",
                      value: [104.87, 29.27, 5]
                  },
                  {
                      name: "富顺县",
                      value: [104.99, 29.18, 6]
                   },
                ]
            }
        ],
    }

    this.cityChart.setOption(option);
},

4、钩子函数渲染地图

mounted() {
    this.getCityMap()
},

5、渲染完成效果


 

总结

实现完成大概就这样,希望给小伙伴带来帮助!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue使用echarts与echarts-gl实现3d地图与 3d柱状图 的相关文章

随机推荐

  • 机器学习之SVM支持向量机

    目录 经典SVM 软间隔SVM 核SVM SVM分类器应用于人脸识别 SVM优点 SVM缺点 经典SVM 支持向量机 Support Vector Machine SVM 是一种二分类模型 其基本思想是在特征空间中找到一个最优的超平面 使得
  • UWB系统的定位精度影响因素

    UWB系统的定位精度影响因素 影响UWB定位精度的因素较多 主要包括 多径效应 非视距传播 多址干扰 参考基站数量 参考基站位置和时钟同步误差等因素 1 多径效应 超宽带信号在室内传播过程中受到复杂的室内环境 如墙体 窗体及室内障碍物等 的
  • go的配置文件

    go湖南老乡 2018 2 5 17 55 54 package main import github com kylelemons go gypsy yaml fmt type reply to findnode neighbors st
  • 初学者用Eclipse和IDEA哪个好用一点?

    idea 毫无疑问 它已经强大到各处吊打eclipse了 新人更是推荐idea 它的语法提示十分智能 假如你写了一段很傻的代码 它会提示你使用更优写法 只需要点一下就可以自动变成更优写法了 普通for自动转增强for 自动转lambda语法
  • SpringBoot版本升级 2.4.5-->2.7.9 遇到的问题

    原项目功能部署 SpringCache Swagger 项目Boot版本升级遇到的问题 问题一 无法启动 报错信息为 org springframework context ApplicationContextException Faile
  • 查看Mysql表的引擎

    show create table 表名
  • 三.数 据 链 路 层

    数据链路层是实现设备之间通信的非常重要的一层 数据链路层的作用 数据链路层使用的信道 1 使用点对点信道的数据链路层 1 1 数据链路和帧 链路 link 是一条无源的点到点的物理线路段 中间没有任何其他的交换结点 一条链路只是一条通路的一
  • 数据分析之-pandas

    1 pandas库安装导入 windows下和linux下都可以使用pip安装 安装之前最好把pip升级到最新版 python m pip install upgrade pip 升级pip pip install pandas 安装pan
  • myabtis-plus 代码生成器自定义模板

    mybatis plus代码生成器默认生成的controller是下面这样的 一个空的controller RestController RequestMapping sysUserRoleRelevance public class Sy
  • JavaScript中浮点数精确值问题

    js中规定安全整数的范围是 2的53次方至2的53次方 也就是 9007199254740992 9007199254740992 在JavaScript中0 1 0 2不等于0 3的问题 0 1 0 2 0 300000000000000
  • 深度学习系统为什么容易受到对抗样本的欺骗?

    转自 https zhuanlan zhihu com p 89665397 本文作者 kurffzhou 腾讯 TEG 安全工程师 最近 Nature发表了一篇关于深度学习系统被欺骗的新闻文章 该文指出了对抗样本存在的广泛性和深度学习的脆
  • LeetCode 7. 整数反转(C语言)

    Description 给出一个 32 位的有符号整数 你需要将这个整数中每位上的数字进行反转 示例 1 输入 123 输出 321 示例 2 输入 123 输出 321 示例 3 输入 120 输出 21 注意 假设我们的环境只能存储得下
  • 【01规划】POJ 3621 Sightseeing Cows

    POJ 3621 Sightseeing Cows 题意 给定一张 n 个点 m 条边的有向图 每个点都有一个权值 f i 每条边都有一个权值 t i 求图中的一个环 使 环上各点的权值之和 除以 环上各边的权值之和 最大 输出这个最大值
  • MVC 实现登录功能

    1 表单 2 数据层 3 逻辑层 4 servlet分发控制器
  • 高校巡讲总结—侯伯薇讲师

    这个月里面 借助CSDN的平台 在三所高校中做了 程序员修炼之路 的巡讲 在其中讲述了自己的一些经历 并和同学们聊了学习 思考和分享这三个要素 三所高校各自有各自的特点 感觉很有意思 一一叙述如下 首先 第一站是在辽宁工程技术大学 位于葫芦
  • 总结Windows下安装WSL与升级WSL2的方法

    目录 1 安装WSL1的方法 2 安装WSL2的方法 3 升级WSL1到WSL2的方法 1 打开win10的设置 搜索windows功能 打开启用或者关闭Windows功能 2 勾选以下2个地方 并重启 3 下载WSL2升级包 并点击安装
  • JS原型

    原型的概念 实例对象中 proto 是原型 是一个属性也是一个对象 是给浏览器使用的 是不标准的 这个叫隐式原型 构造函数中的prototype是原型 是一个属性也是一个对象 是给程序员用的 是标准的 proto 原型是浏览器使用的 有些浏
  • JDBC-数据库连接字符串

    SQLSERVER Connection conn DriverManager getConnection jdbc sqlserver localhost 1433 sa Oracle Connection conn DriverMana
  • 什么是rem单位和em单位?它们有什么区别?

    聚沙成塔 每天进步一点点 专栏简介 rem 和 em 单位 rem 单位 Root Em em 单位 区别总结 写在最后 专栏简介 前端入门之旅 探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到
  • vue使用echarts与echarts-gl实现3d地图与 3d柱状图

    目录 前言 一 下载echarts与echarts gl 二 vue引入与页面使用 1 引入 2 页面引入echarts gl 三 下载地图数据 四 使用地图 1 html初始化地图放入位置 2 data创建变量 3 创建地图 4 钩子函数