码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vue中echart-gl 3D地图纹理实例


    1. 安装

    npm install echarts
    npm install echarts-gl
    
    • 1
    • 2

    2. vue组件

    html部分
      
    
    • 1
    • 2
    • 3
    • 4
    • 5
    JS引入
    import * as Echarts from 'echarts'
    import 'echarts-gl'
    import shanghai from 'shanghai.json'
    
    • 1
    • 2
    • 3
    核心方法
    mounted () {
    	this.initChart()
    },
    methods: {
       initChart () {
    	  const vue = this
    	  let myChart = Echarts.init(this.$refs.mapChart)
    	  myChart.onresize = myChart.resize
    	  Echarts.registerMap('shanghai', shanghai)
    	  const options = {
    		series:{
    			name: 'shanghai',
    			type: 'map3D',
    			map: shanghai,
    			aspectScale: 0.9,
    			selectedMode: false,
    			shading: 'realistic'
    			// 后面添加各个属性OBJ
    		}
    	  }
    	  myChart.setOption(options)
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    地图初显效果

    echart-gl上海地图,初步展示
    添加描边

      const itemStyle = {
        opacity: 1,
        borderWidth: 2,
        borderColor: '#01CAF8',
        shadowColor: 'red'
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    添加区域图片纹理

      const realisticMaterial = {
        detailTexture: '/1.png',
        textureTiling: 1, // 纹理平铺,1是拉伸,数字表示纹理平铺次数
        roughness: 1, // 材质粗糙度,0完全光滑,1完全粗糙
        metalness: 0, // 0材质是非金属 ,1金属
        roughnessAdjust: 0
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    添加区域鼠标移入效果

      const emphasis = {
        label: {
          show: true,
          color: '#FFF',
          fontSize: 20
        },
        itemStyle: {
          borderColor: '#41EB26',
          borderWidth: 5,
          color: '#41EB26' 
        }
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    添加地级市的标签

      const label = {
        show: true,
        formatter: (params) => {
          name = params.data.name
          if (params.data.alias) name = params.data.alias
          return name
        },
        textStyle: {
          backgroundColor: 'transparent',
          color: '#FFF',
          fontSize: '20',
          padding: 0
        }
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    此时效果图
    echart-gl 上海地图纹理
    颜色有点暗对,添加光线(intensity:环境光强度,值越大,越亮)

      const light = {
        main: {
          color: '#fff',
          intensity: 1,
          shadow: false,
          shadowQuality: 'high',
          alpha: 8,
          beta: 80
        },
        ambient: {
          color: '#fff', 
          intensity: 1
        }
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    后续

    点击事件(可用)

     myChart.off('click')
        myChart.on('click', function (params) {
     })
    
    • 1
    • 2
    • 3

    3. 总结

    很对人遇到myChart.off(‘click’)不生效,是因为,你地图在geo上面的。series这儿就没问题了。

  • 相关阅读:
    刷题记录(M. MaratonIME returns home,牛可乐和魔法封印,NC24866 [USACO 2009 Dec S]Music Notes)
    vr虚拟仿真样板间极大节省出样成本-深圳华锐视点
    Vue笔记_transition组件(过渡样式)
    Pulsar-Pulsar 之 Functions
    SkyEye Q&A ——第三期
    高精度算法【Java】(待更新中~)
    教育教学论坛杂志教育教学论坛杂志社教育教学论坛编辑部2022年第39期目录
    【WinForm】关于截图识别数字并计算的桌面程序实现方案
    2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片(Form_Vision部分代码)
    最长公共子序列(最详细的动态规划案例)
  • 原文地址:https://blog.csdn.net/u013216976/article/details/133924620
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号