vue-使用echarts+echarts-gl实现某个省份地区地图3d可视化

前言

  • 最近在开发中遇到一个需求,需要把一个地区地图变成3d感觉悬浮在大屏中间配合业务需求

  • 其实echarts配合三方库就可以实现这个效果,具体细节需要自己调整

代码实现

1.下载各省份各地区地图数据-json文件-根据需求下载对应地图json数据引入即可

最新全国地图JSON数据: 数据来源:阿里云数据可视化平台 - Gitee.com

2.安装echarts和echarts-gl插件:
javascript 复制代码
npm install echarts
npm install echarts-gl
3.代码实现-直接复制-注意下包和引入进来json地图数据需要对应起来
html 复制代码
<template>
  <div class="app-container">
    <div ref="myMap" style="width: 100%; height: 100%"></div>
  </div>
</template>
​
<script>
import * as echarts from 'echarts'
import 'echarts-gl'
export default {
  name: 'Index',
  data () {
    return {}
  },
  mounted () {
    this.initMap()
  },
  methods: {
    initMap () {
      // json地图数据-需要根据需求下载引入对应名称文件
      let mapJson = require('../views/dashboard/hubei.json')
      let myChart = echarts.init(this.$refs.myMap)
      myChart.showLoading()
      myChart.hideLoading()
      echarts.registerMap('myMap', mapJson)
​
      var option = {
        tooltip: {
          // 自定义代码
        },
        series: [
          {
            type: 'map3D',
            name: '地图',
            // 相对于父容器比例
            center: ['50%', '50%'],
            selectedMode: 'single', // 地图高亮单选
            regionHeight: 4, // 地图高度
            map: 'myMap',
            viewControl: {
              // 缩放大小,数值越大,地图越小
              distance: 120,
              // 上下倾斜角度
              alpha: 50,
              // rotateSensitivity: [1, 1],
              // 左右倾斜角度
              beta: -30
            },
            label: {
              show: true, // 是否显示名字
              color: '#fff', // 文字颜色
              fontSize: 18, // 文字大小
              fontWeight: 'bold' // 文字大小
            },
            itemStyle: {
              color: '#4389ED', // 地图背景颜色
              borderWidth: 1, // 分界线wdith
              borderColor: '#61CFF8', // 分界线颜色
              opacity: 0.92
            },
            emphasis: {
              label: {
                show: true, // 是否显示高亮
                textStyle: {
                  color: '#fff' // 高亮文字颜色
                }
              },
              itemStyle: {
                color: '#007EE8', // 地图高亮颜色
                borderWidth: 10, // 分界线wdith
                borderColor: '#6BECF5' // 分界线颜色
              }
            },
            light: {
              main: {
                color: '#fff',
                intensity: 1,
                shadow: true,
                shadowQuality: 'high',
                alpha: 25, //
                beta: 20
              },
              ambient: {
                color: '#fff',
                intensity: 0.6
              }
            }
          }
        ]
      }
​
      myChart.setOption(option)
      window.addEventListener('resize', function () {
        console.log('myChart.resize()', myChart.resize())
        myChart.resize()
      })
    }
  }
}
</script>
​
<style lang="scss" scoped>
.app-container {
  width: 100%;
  height: 795px;
  // background: skyblue;
}
</style>
​

总结:

经过这一趟流程下来相信你也对 vue-使用echarts+echarts-gl实现某个省份地区地图3d可视化 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

有什么不足的地方请大家指出谢谢 -- 風过无痕

相关推荐
抹茶冰淇淋2 分钟前
降级系统后,2019年的Mac电脑重获新生
前端
雪碧聊技术1 小时前
前端VUE3项目部署到linux服务器(CentOS 7)
前端·linux部署vue3项目
汝生淮南吾在北4 小时前
SpringBoot+Vue饭店点餐管理系统
java·vue.js·spring boot·毕业设计·毕设
酒尘&7 小时前
JS数组不止Array!索引集合类全面解析
开发语言·前端·javascript·学习·js
学历真的很重要7 小时前
VsCode+Roo Code+Gemini 2.5 Pro+Gemini Balance AI辅助编程环境搭建(理论上通过多个Api Key负载均衡达到无限免费Gemini 2.5 Pro)
前端·人工智能·vscode·后端·语言模型·负载均衡·ai编程
用户47949283569158 小时前
"讲讲原型链" —— 面试官最爱问的 JavaScript 基础
前端·javascript·面试
用户47949283569158 小时前
2025 年 TC39 都在忙什么?Import Bytes、Iterator Chunking 来了
前端·javascript·面试
JIngJaneIL9 小时前
基于Java非遗传承文化管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
+VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vue心理健康管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
大怪v10 小时前
【Virtual World 04】我们的目标,无限宇宙!!
前端·javascript·代码规范