美文网首页
echarts china.js 自定义地图案例分享

echarts china.js 自定义地图案例分享

作者: 小小Bug你别跑 | 来源:发表于2020-12-03 16:57 被阅读0次

最近接到的一个地图自定义样式的开发需求,
1,自定义地图色阶颜色和省边界样式
2,自定义鼠标悬停高亮颜色
3,地图模块显示的数值使用百分比%显示
4,不显示南沙群岛
其实是一个比较简单的地图修改,但是因为一些属性不是很常用所以修改的时候也花费了一些时间,所以发个简书跟大家分享一下

先上实现效果 china.png

标签不多说 🦉🦉🦉

<div id="drawChinese" class="drawChina" />

我们先在所需的Vue文件中引用china,echarts在main.js引用过所以这边就不需要引用了

import 'echarts/map/js/china'

data数据,组件默认显示是数值,我们返回的是百分比数据没有%需要我们自己设置一下。
然后需求4是在这部分实现的,最后一行数据我直接把itemStyle插入到了数据中,这只是一种设置方式。
echars应该有设置的属性,但是我没有找到。😅😅😅
但是这也是我开发场景中比较方便的一种解决方式,如果有更好的请大佬分享。🙏🙏🙏

data: [
        { 'name': '浙江', 'value': '13.06' }, { 'name': '广东', 'value': '9.31' },
        { 'name': '江苏', 'value': '8.79' }, { 'name': '山东', 'value': '6.51' },
        { 'name': '河南', 'value': '5.79' }, { 'name': '河北', 'value': '4.86' },
        { 'name': '广西', 'value': '3.56' }, { 'name': '西藏', 'value': '3.54' },
        { 'name': '内蒙古', 'value': '3.48' }, { 'name': '台湾', 'value': '3.34' },
        { 'name': '青海', 'value': '3.15' }, { 'name': '黑龙江', 'value': '3.11' },
        { 'name': '江西', 'value': '2.93' }, { 'name': '山西', 'value': '2.83' },
        { 'name': '重庆', 'value': '2.78' }, { 'name': '湖北', 'value': '2.52' },
        { 'name': '福建', 'value': '2.49' }, { 'name': '吉林', 'value': '2.46' },
        { 'name': '宁夏', 'value': '2.30' }, { 'name': '四川', 'value': '2.02' },
        { 'name': '辽宁', 'value': '1.67' }, { 'name': '香港', 'value': '1.39' },
        { 'name': '湖南', 'value': '1.23' }, { 'name': '澳门', 'value': '1.20' },
        { 'name': '安徽', 'value': '1.17' }, { 'name': '贵州', 'value': '0.91' },
        { 'name': '新疆', 'value': '0.86' }, { 'name': '陕西', 'value': '0.76' },
        { 'name': '天津', 'value': '0.58' }, { 'name': '上海', 'value': '0.54' },
        { 'name': '海南', 'value': '0.35' }, { 'name': '云南', 'value': '0.22' },
        { 'name': '北京', 'value': '0.15' }, { 'name': '甘肃', 'value': '0.14' },
        { 'name': '南海诸岛', 'value': 0, 'itemStyle': { 'normal': { 'opacity': 0 }}}
      ]

主体部分直接看代码都是属性的设置修改的部分都加了注释。

 // 绘制地图
    drawChina() {
      // 基于准备好的dom,初始化echarts实例
      const myChart = this.$echarts.init(document.getElementById('drawChinese'))
      // 绘制图表
      myChart.setOption({
        backgroundColor: '#FFFFFF',
        title: {
          text: '地域分布',
          top: 14,
          left: 14,
          textStyle: {
            borderColor: '#333333',
            fontWeight: 400,
            fontFamily: 'PingFangSC-Regular, PingFang SC',
            color: '#666666',
            fontSize: 14
          }
        },
        tooltip: {
          trigger: 'item',
          show: true,
          formatter: function(params) {
            return params.name + ':' + params.data['value'] + '%'
          }
        },
        // 左侧小导航图标
        visualMap: {
          show: false,
          x: 'left',
          y: 'center',
          min: 0,
          max: 5,
          color: ['#3644BF', '#B7C8FF']
        },
        // 配置属性
        series: [{
          name: '数据',
          type: 'map',
          mapType: 'china',
          roam: false,
          label: {
            normal: {
              show: false // 省份名称
            },
            emphasis: {
              show: false
            }
          },
          itemStyle: {
            normal: { // 未选中状态
              // areaColor: 'red', // 南沙诸岛背景颜色
              borderColor: 'transparent',
              label: {
                show: true// 显示名称
              }
            },
            emphasis: { // 也是选中样式
              areaColor: '#49FFE9',
              shadowColor: 'rgba(0,0,0,0.2)',
              shadowOffsetX: 0, // 阴影水平方向上的偏移距离
              shadowOffsetY: 4, // 阴影垂直方向上的偏移距离
              shadowBlur: 8, // 图形阴影的模糊大小。
              label: {
                show: true,
                textStyle: {
                  color: '#fff'
                }
              }
            }
          },
          data: this.data
        }]
      })
    }

简书小白,首次分享,大佬见谅!!!

相关文章

网友评论

      本文标题:echarts china.js 自定义地图案例分享

      本文链接:https://www.haomeiwen.com/subject/dpwmwktx.html