echarts地图 可视化大屏使用echarts-map实现地图轮播效果

这篇具有很好参考价值的文章主要介绍了echarts地图 可视化大屏使用echarts-map实现地图轮播效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

记录一下大屏开发中使用到的echartsMap
大屏的页面根据需求前前后后改了几个版本了,地图的样式也改了又改
这里记录一下,因为echarts属性用到的比较多也比较杂,防止以后需要用到忘记了

初始效果

效果图:
适应大屏风格的发光地图效果,用了两个图层实现叠加背景图片实现:
电子大屏可视化地图,echarts使用案例,echarts,前端,javascript
地图配置代码:
到这里是简单实现了图中有高度效果的地图

// 地图初始化
    render_echartsMap(mapData) {
      var chartDom = document.getElementById('map_wrapper') // 挂载元素
      var myChart = chartDom && echarts.init(chartDom) // 初始化echarts地图
      echarts.registerMap('JS', jiaxing) // 注册地图 注意这里的地图json文件需要换成自己需要的
      var option
      option = {
        geo: [
          {
            map: 'JS',
            aspectScale: 1, // 横向拉伸
            zoom: 1.2,
            zlevel: 2,
            label: {
              show: true,
              color: '#eee'
            },
            itemStyle: {
              color: 'rgba(23, 89, 151, 0.35)', // 背景
              borderWidth: '1', // 边框宽度
              borderColor: '#5FD7FF' // 边框颜色
            },
            emphasis: {
              areaColor: '#195BB9',
              label: {
                show: true
              }
            }
          },
          {
            map: 'JS',
            top: '13%',
            aspectScale: 1, // 横向拉伸
            zoom: 1.2,
            zlevel: 1,
            itemStyle: {
              color: 'rgba(23, 89, 151, 0.1)', // 背景
              borderWidth: '1', // 边框宽度
              borderColor: 'RGBA(129, 222, 227, 0.3)', // 边框颜色
              shadowColor: '#fff', // 外部阴影
              shadowBlur: '10',
              colorStops: [
                {
                  offset: 0,
                  color: 'black' // 0% 处的颜色
                },
                {
                  offset: 1,
                  color: 'blue' // 100% 处的颜色
                }
              ]
            }
          }
        ]
      }
      myChart && myChart.setOption(option)
    }
echarts-map 叠加散点图层

效果图:
电子大屏可视化地图,echarts使用案例,echarts,前端,javascript
根据需求,需要渲染辖区内的数据量,对辖区内的高危数据进行展示,又加了散点图层
由于用户的设备屏幕尺寸较小影响渲染,发光效果会导致文字看不清就取消了

代码:
在上述代码的 render_echartsMap() 方法中,增加以下内容:

    render_echartsMap(mapData) {
      // 地图json文件中的
      const geoCoordMap = {
        南湖区: [120.842186, 30.711139],
        秀洲区: [120.686302, 30.768878],
        嘉善县: [120.902273, 30.8996],
        海盐县: [120.929474, 30.474419],
        海宁市: [120.623175, 30.425385],
        平湖市: [121.103105, 30.705649],
        桐乡市: [120.483851, 30.605938],
        经开区: [120.726302, 30.728878]
      }
      // 转化为需要渲染的数据
      const convertData = function(data) {
        var res = []
        for (var i = 0; i < data.length; i++) {
          var geoCoord = geoCoordMap[data[i].name]
          if (geoCoord) {
            res.push({
              name: data[i].name,
              value: geoCoord.concat(data[i].value)
            })
          }
        }
        return res
      }
      option = {
        geo: [...], // ...... 这里是geo图层
        series: [
          {
            name: '散点', // 自定义名称
            type: 'effectScatter', // scatter  effectScatter
            coordinateSystem: 'geo', // 设置坐标系类型
            data: convertData(mapData), // 设置散点位置和数据
            symbolSize: function(val) {
              // 设置散点大小
              return 10
            },
            showEffectOn: 'render',
            rippleEffect: {
              brushType: 'stroke'
            },
            hoverAnimation: true, // 是否显示鼠标悬浮动画
            label: {
              // 静态显示时的样式
              normal: {
                show: true, // 显示地区名称
                formatter: function(data) {
                  // 显示模板
                  return '高危企业:' + data.value[2]
                },
                position: 'bottom' // 显示位置
              },
              // 鼠标悬浮上去的样式
              emphasis: {
                // 鼠标 hover 高亮时图形和标签的样式 (当鼠标放上去时  label和itemStyle 的样式)
                label: {
                  // label高亮时的配置
                  show: true,
                  textStyle: {
                    color: '#ffffff', // 高亮时标签颜色变为 白色
                    fontSize: 20 // 高亮时标签字体 变大
                  }
                },
                itemStyle: {
                  // itemStyle高亮时的配置
                  areaColor: '#006cff' // 高亮时地图板块颜色改变
                }
              }
            },
            itemStyle: {
              normal: {
                color: '#27d3c3',
                shadowBlur: 10
              },
              // 鼠标悬浮上去的样式
              emphasis: {
                fontSize: 20
              }
            },
            zlevel: 3
          }
        ]
      }
    },
echarts-map 实现轮播效果 tooltip formatter

效果图:
电子大屏可视化地图,echarts使用案例,echarts,前端,javascript
完整代码:文章来源地址https://www.toymoban.com/news/detail-562650.html

    // 地图初始化
    render_echartsMap(mapData) {
      const geoCoordMap = {
        南湖区: [120.842186, 30.711139],
        秀洲区: [120.686302, 30.768878],
        嘉善县: [120.902273, 30.8996],
        海盐县: [120.929474, 30.474419],
        海宁市: [120.623175, 30.425385],
        平湖市: [121.103105, 30.705649],
        桐乡市: [120.483851, 30.605938],
        经开区: [120.726302, 30.728878]
      }
      const convertData = function(data) {
        var res = []
        for (var i = 0; i < data.length; i++) {
          var geoCoord = geoCoordMap[data[i].name]
          if (geoCoord) {
            res.push({
              name: data[i].name,
              value: geoCoord.concat(data[i].value[0], data[i].value[1], data[i].value[2])
            })
          }
        }
        return res
      }
      var chartDom = document.getElementById('map_wrapper')
      var myChart = chartDom && echarts.init(chartDom) // 初始化echarts
      echarts.registerMap('JS', jiaxing) // 注册地图
      var option
      option = {
        tooltip: {
          show: true,
          confine: true,
          textStyle: {
            align: 'left'
          },
          formatter: function(data) {
            // 显示模板
            return [
              data.data.name,
              '高危企业:' + data.data.value[2] + ' 家',
              '高危车辆:' + data.data.value[3] + ' 辆',
              '高危驾驶人:' + data.data.value[4] + ' 人'
            ].join('<br>')
          }
        },
        series: [
          {
            name: '嘉兴市高危数据统计',
            type: 'map',
            map: 'JS',
            aspectScale: 1, // 横向拉伸
            zoom: 1.35,
            radius: '80%',
            layoutCenter: ['50%', '50%'],
            layoutSize: '100%',
            data: convertData(mapData),
            label: {
              normal: {
                show: true,
                textStyle: { color: '#fff' }
              },
              emphasis: {
                show: true,
                textStyle: { color: '#fff' }
              }
            },
            itemStyle: {
              normal: {
                borderWidth: 0.5, // 区域边框宽度
                borderColor: '#5FD7FF', // 区域边框颜色
                areaColor: 'rgba(23, 89, 151, 0.35)' // 区域颜色
              },
              emphasis: {
                borderWidth: 0.5,
                borderColor: '#fff',
                areaColor: 'rgba(37, 200, 249, 0.75)'
              }
            }
          }
        ]
      }
      myChart && myChart.setOption(option)
      this.mapActive(mapData, myChart)
    },
    // 地图高亮轮播
    mapActive(mapData, myChart) {
      if (!myChart) {
        return
      }
      const dataLength = mapData.length
      // 用定时器控制高亮
      this.mTime = setInterval(() => {
        // 清除之前的高亮
        myChart.dispatchAction({
          type: 'downplay',
          seriesIndex: 0,
          dataIndex: this.dataIndex
        })
        this.dataIndex++
        // 当前下标高亮
        myChart.dispatchAction({
          type: 'highlight',
          seriesIndex: 0,
          dataIndex: this.dataIndex
        })
        myChart.dispatchAction({
          type: 'showTip',
          seriesIndex: 0,
          dataIndex: this.dataIndex
        })
        if (this.dataIndex > dataLength) {
          this.dataIndex = 0
        }
      }, 3000)
      myChart.on('mouseover', () => {
        console.log('mouseover')
        // 停止定时器,清除之前的高亮
        clearInterval(this.mTime)
        this.mTime = ''
        console.log(this.mTime)
        myChart.dispatchAction({
          type: 'downplay',
          seriesIndex: 0,
          dataIndex: this.dataIndex
        })
      })
      // 鼠标划出重新定时器开始
      myChart.on('mouseout', () => {
        this.mapActive(mapData, myChart)
      })
    },

到了这里,关于echarts地图 可视化大屏使用echarts-map实现地图轮播效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flask+Echarts搭建全国疫情可视化大屏

    本项目是基于flask+echarts搭建的全国疫情追踪的可视化大屏,主要涉及到的技术有csv处理,flask框架,echarts图表。 最终效果如下: 我们先搭建一个基础的flask应用 接着,需要编写index.html页面和css样式代码(这里我就直接放最终的代码) 我们需要编写获取数据的接口,然后通过

    2024年02月16日
    浏览(30)
  • 数据可视化大屏——基于echarts的开发经验分享

    各位同事大家好!下面是我使用echarts中总结的一些个人经验,仅供参考。 echarts的能力、优劣等特点大家应该在技术选型阶段已经有所了解,这里主要分享使用、设计等经验。 echarts由无到有一共只需要四步: 引入echarts资源 :支持模块化项目使用npm下载引入,老项目使用s

    2024年02月01日
    浏览(46)
  • Flask配合Echarts写一个动态可视化大屏

    ch 后端:flask 可视化:echarts 前端:HTML+JavaScript+css 大屏拆分 案例项目中大屏可按版块进行拆解,会发现这里大屏主要由标题、折线图、柱状图、地图、滚动图和词云等组成,整体可切分为8个版块,如下: 下方为简单演示: HTML 我们整体布局前,先通过简单的案例了解前端布

    2024年02月07日
    浏览(35)
  • 基于Echarts构建大数据招聘岗位数据可视化大屏

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.项目背景 2.项目简介 3.项目流程 3.1整体布局 3.2左边布局 3.3中间布局  3.4右边布局  

    2024年02月03日
    浏览(35)
  • springboot+echarts +mysql制作数据可视化大屏(四图)

    作者水平低,如有错误,恳请指正!谢谢!!!!! 项目简单,适合大学生参考 分类专栏还有其它的可视化博客哦! 专栏地址:https://blog.csdn.net/qq_55906442/category_11906804.html?spm=1001.2014.3001.5482 成果展示: 1)可以使用自己的MySQL数据库; 2)使用我提供的数据。(要数据私信

    2024年02月13日
    浏览(30)
  • 基于Django+Mysql+Echarts的可视化大屏开发

    课程实验作业,临时赶出来的一个可视化大屏,后端是Django实现的web框架+Mysql数据库;前端(HTML+CSS+JS)三剑客,图表控件Echarts;本人很菜,,,做的比较潦草,还请多多包涵! github项目地址:https://github.com/goldikfish/Bigscreen.git 运行效果如图 数据源自国家数据统计局 ,将数

    2024年02月11日
    浏览(28)
  • 基于Python的疫情数据可视化(matplotlib,pyecharts动态地图,大屏可视化)

    有任何学习问题可以加我微信交流哦!bmt1014 1、项目需求分析 1.1背景 2020年,新冠肺炎疫情在全球范围内爆发,给人们的健康和生命带来了严重威胁,不同国家和地区的疫情形势也引起了广泛的关注。疫情数据的监测和分析对疫情防控和科学防治至关重要。本报告以疫情数据

    2024年02月05日
    浏览(34)
  • 【数据可视化】基于Python和Echarts的中国经济发展与人口变化可视化大屏

    1.题目要求 本次课程设计要求使用Python和ECharts实现数据可视化大屏。要求每个人的数据集不同,用ECharts制作Dashboard(总共至少4图),要求输入查询项(地点和时间)可查询数据,查询的数据的地理位置展示在地图上;绘制一个带时间轴的动态图,展示不同时间的数据;根据

    2024年02月16日
    浏览(33)
  • 【地图可视化】Echarts地图上展示3D柱体

    这是以前有这方面可视化的需求做的,找了很多资料,最后感觉这样的效果比较满意。 效果展示  以下以江苏省的地图为例: 数据准备 对于想要做3d效果的地区,需要准备对应的json文件 可以在这个网站上下载,数据最小粒度可以具体到县: DataV.GeoAtlas地理小工具系列 这里

    2023年04月19日
    浏览(35)
  • Vue3 +Echarts5 可视化大屏——屏幕适配

    项目基于Vue3 + Echarts5 开发,屏幕适配是使用 scale 方案 Echarts组件按需引入,减少打包体积 地图组件封装(全国省份地图按需加载) 效果图: 大屏适配常用的方案有 rem + vw/vh 和 scale 。 rem + vw/vh 方案 结合使用rem(相对于根元素字体大小的单位)和vw/vh(视窗宽度/高度的单位

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包