Vue+ElementUI+Echarts的地图DOM

地图图表的开发在我们开发的过程中就很常见,特别是在开发大屏的时候,最近在进行地图图表的开发,就单独用引入的方式来记录一个DOM,让大家一起学习下。

示例图

在这里插入图片描述

从上图可以看到,这个主要是就是对地图做个一个展示,省份的高亮,各个板块的颜色修改的一些功能的DOM。

因为我使用是html来写的,所以都是用引入的模式来进行开发

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
<script src="https://geo.datav.aliyun.com/areas_v3/bound/geojson?code=100000"></script>
//地图的js
<script src="https://cdn.jsdelivr.net/npm/echarts/map/js/china.js?v=1598903772045"></script>

html板块。旁边的颜色块选择修改的模块就不一一展示了。

<div id="box" :style="{'background-color': form.backgroundColor}" style="width: 800px; height: 600px;"></div>

下面就是JS方法板块

因为我添加了颜色的图层展示,就导致了地图样式修改会失效,比较已经给了底色

initMap(){
          var myEcharts = echarts.init(document.getElementById("box"));
          var option = {
            title: {
              text: this.form.title,
              x: "center",
              textStyle: {
                fontSize: 18,
                color: this.form.titleColor
              },
            },
            tooltip: {
                trigger: 'item', 
                backgroundColor: "#588ED5",
                formatter: '地区:{b}<br/>value:{c}'
            },
            visualMap: {
              show: true,
              type: 'piecewise',
              calculable: true,
              showLabel: true,
              itemSymbol: 'rect',
              left: 20,
              top: 20,
              itemWidth: 20,
              itemHeight: 6,
              inRange: {
                color: ['rgb(163,163,163)','#FEE5Da', '#FCBAA0', '#F66B4A', '#DE2D27','#A60F14']
              },
              padding: 0,
              pieces: [
                { min: 50000, label: '>50000', symbol: 'rect' }, // 不指定 max,表示 max 为无限大(Infinity)。
                { min: 4000, max: 50000,label: '4000~50000', symbol: 'rect' }, // 不指定 max,表示 max 为无限大(Infinity)。
                { min: 300, max: 4000,label: '300~4000', symbol: 'rect' }, // 不指定 max,表示 max 为无限大(Infinity)。
                { min: 1, max: 20, label: '1~20', symbol: 'rect' },
                { min: 0, max: 1, label: '0~1', symbol: 'rect' },
                { min: 0, max: 0, label: '无数据', symbol: 'rect' }
              ],
              
              align: "left",
              itemGap: 5,
              textStyle: {
                color: '#000'
              },
            },
            series: [
              {
                name: '地图',
                type: 'map',
                mapType: 'china',
                roam: false,
                itemStyle: {
                  // show:false,
                  normal: {
                    areaColor: this.form.areaColor,
                    label: {
                      show: true,//是否显示标签
                      textStyle: {
                        color: this.form.wordColor
                      }
                    }
                  },
                  zoom: 1.5, 
                  emphasis: {//是图形在高亮状态下的样式,比如在鼠标悬浮或者图例联动高亮时
                    areaColor: this.form.highlightColor,
                    label: { show: true }
                  }
                },
                top: "4%",
                data: [
                    { name: '北京', value: 0 },
                    { name: '天津', value: 0 },
                    { name: '上海', value: 0 },
                    { name: '重庆', value: 0 },
                    { name: '河北', value: 0 },
                    { name: '河南', value: 0 },
                    { name: '云南', value: 0 },
                    { name: '辽宁', value: 0 },
                    { name: '黑龙江', value: 10 },
                    { name: '湖南', value: 0 },
                    { name: '安徽', value: 0 },
                    { name: '山东', value: 400 },
                    { name: '新疆', value: 0 },
                    { name: '江苏', value: 0 },
                    { name: '浙江', value: 0 },
                    { name: '江西', value: 0 },
                    { name: '湖北', value: 0 },
                    { name: '广西', value: 1500 },
                    { name: '甘肃', value: 0 },
                    { name: '山西', value: 0 },
                    { name: '内蒙古', value: 0 },
                    { name: '陕西', value: 0 },
                    { name: '吉林', value: 0 },
                    { name: '福建', value: 0 },
                    { name: '贵州', value: 0 },
                    { name: '广东', value: 0 },
                    { name: '青海', value: 0 },
                    { name: '西藏', value: 10000 },
                    { name: '四川', value: 0 },
                    { name: '宁夏', value: 0 },
                    { name: '海南', value: 0 },
                    { name: '台湾', value: 0 },
                    { name: '香港', value: 0 },
                    { name: '澳门', value: 0 }
                  ]
              }
            ]
          };
          // 使用刚指定的配置项和数据显示图表。
          myEcharts.setOption(option,true);
        }

上面jsdata的省份数据,记得名字要一样的,不能修改。

VueElementUIEcharts 是三个非常常用的前端开发框架,它们可以很好地配合使用以创建可视化大屏。 首先,Vue 是一个用于构建交互式的用户界面的渐进式框架。它提供了一系列的工具和组件,可以让开发者更加便捷地开发单页面应用。Vue 的优点在于其轻量级和易学性,同时它还提供了更好的模块化和数据驱动的开发方式。 其次,ElementUI 是一个基于Vue的组件库,其中包含了常用的UI组件。它提供了丰富的组件和模板,可以与Vue框架无缝集成,极大地提高了开发效率。ElementUI 提供了美观的界面设计,使得可视化大屏的展示效果更加专业和美观。 最后,Echarts 是一个强大的数据可视化库,支持多种图表类型和交互方式。VueEcharts之间的集成非常方便,可以通过Vue的指令或者组件方式调用Echarts的API,实现各种图表的展示。Echarts 提供了丰富的配置选项和事件响应机制,使得开发者可以灵活地定制和交互大屏。 结合VueElementUIEcharts,可以很轻松地实现可视化大屏的开发。首先,使用Vue进行单页面应用的开发,结合ElementUI的组件实现大屏的布局和样式。然后,使用Echarts的图表组件,根据需要绘制各种图表,展示数据的变化情况。通过VueEcharts的集成,可以将数据与图表进行绑定,实时更新图表的展示,提高用户的交互体验。 总之,使用VueElementUIEcharts可以轻松地开发可视化大屏,实现数据的可视化展示。这种组合可以提高开发效率和用户体验,同时还可以为用户呈现出更加美观和专业的界面设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一介青烟小生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值