vue echarts 画湖北省地图

168 阅读3分钟

vue echarts 画湖北省地图。默认已经 npm i echartr --save 过了哈~

// map.js

import * as echarts from 'echarts'
import hu from './hu.json'

export const drawMap = ()  =>{
    // 默认地图是不显示的,需要再echarts 中注册一下才能能显示
    echarts.registerMap('hubei',{geoJSON:hu})
    let myChart = echarts.init(document.getElementById("map-chart"));
    var mapBoxOption = {
      tooltip: {
        show: true,
        padding: 10,
        alwaysShowContent: true, // 是否永远显示tooltip
        enterable: true,
        transitionDuration: 1.5, // 移动动画时间,单位s
        trigger: "item",
        position: "top",
        textStyle: {
          color: "#fff"
        },
        backgroundColor: 'rgba(255,255,255,0)',//通过设置rgba调节背景颜色与透明度
        formatter: function (val) {
          let show = val.data.value || "无";
          let html = `<div id='mapStoreClass' class='tip-part'><div>${val.name}</div><p>申请金额 <span class='one'>1000</span> 万</p><p>放款金额 <span class='two'>1000</span>万</p><p class='four'>放款笔数<span>4009</span>笔</p><p>申请笔数 <span class='four'>1356</span> 笔</p></div>`
          return html
        },
        
        // extraCssText: "width:300px; height:180px;color:#999; border-radius:15px;"
      },
      geo: {
        show: true,
        map: 'hubei',
        label: {
          normal: {
            show: false
          },
          emphasis: {
            show: false,
          }
        },
        regions:[
            {name: '神农架林区',itemStyle:{
                normal:{
                    opacity:1
                }
            }},
            
        ],
        roam: true,
        itemStyle: {
          normal: {
            areaColor: 'transparent',
            borderColor: '#3fdaff',
            borderWidth: 0,
            shadowColor: 'rgba(63, 218, 255, 0.5)',
            shadowBlur: 30
          },
          emphasis: {
            areaColor: '#2B91B7',
          }
        }
      },
      series: [
        {
          type: "map",
          map: "hubei",
          coordinateSystem: 'geo',
          zoom:1.2,
          symbolSize: function (val) {
            return 25;
          },
          encode: {
            value: 2
          },
          label: {
            normal: { //静态的时候展示样式
              show: true, //是否显示地图省份得名称
              textStyle: {
                color: "#fff",
                fontSize: 12,
              }
            },
            emphasis: { //动态展示的样式
              color: '#fff',
            },
          },
          itemStyle: {
            normal: {
              show: true, //默认是否显示
              textStyle: {
                color: '#000000'
              },
              areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                  offset: 0, color: 'rgba(94,164,247,1)'
                }, {
                  offset: 0, color: 'rgba(94,164,247,1)'
                }],
                global: false
              },
              borderColor: '#404a59',
            },
            emphasis: {
              areaColor: {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [{
                  offset: 0, color: 'rgba(90,246,247,1)'
                }, {
                  offset: 0, color: 'rgba(90,246,247,0.7)'
                }],
                global: false
              }
            }
          }, data: [
            {name: '神农架林区', value: 31.4, lng: 110.511625, lat: 31.544449},
            {name: '天门市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '襄阳市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '十堰市', value: 31.4, lng: 110.511625, lat: 31.544449},
            {name: '孝感市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '随州市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '黄冈市', value: 31.4, lng: 110.511625, lat: 31.544449},
            {name: '宜昌市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '荆门市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '武汉市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '鄂州市', value: 31.4, lng: 110.511625, lat: 31.544449},
            {name: '黄石市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '咸宁市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '仙桃市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '潜江市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '荆州市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '恩施土家族苗族自治州', value: 47.9, lng: 116.849551, lat: 40.382999},
          ],
          // data: _this.listArr
          zlevel: 1
        },

        {
          name: 'Top 5',
          type: 'effectScatter',
          map: "湖北",
          coordinateSystem: 'geo',
          data: [
            {name: '神农架林区', value: 31.4, lng: 110.511625, lat: 31.544449},
            {name: '天门市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '襄阳市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '十堰市', value: 31.4, lng: 110.511625, lat: 31.544449},
            {name: '孝感市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '随州市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '黄冈市', value: 31.4, lng: 110.511625, lat: 31.544449},
            {name: '宜昌市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '荆门市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '武汉市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '鄂州市', value: 31.4, lng: 110.511625, lat: 31.544449},
            {name: '黄石市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '咸宁市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '仙桃市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '潜江市', value: 47.9, lng: 116.849551, lat: 40.382999},
            {name: '荆州市', value: 38.4, lng: 116.63853, lat: 40.322563},
            {name: '恩施土家族苗族自治州', value: 47.9, lng: 116.849551, lat: 40.382999},
          ],
          symbolSize: function (val) {
            return 25;
          },
          showEffectOn: 'render',
          rippleEffect: {
            brushType: 'stroke'
          },
          hoverAnimation: true,
          label: {
            normal: {
              formatter: '{b}',
              position: 'right',
              show: true
            }
          },
          itemStyle: {
            normal: {
              color: '#F4E925',
              shadowBlur: 10,
              shadowColor: '#05C3F9'
            }
          },
          zlevel: 1
        },
      ]
    }
    // 使用制定的配置项和数据显示图表
    myChart.setOption(mapBoxOption);
    // echart图表自适应
    window.addEventListener("resize", function () {
      myChart.resize();
    });
  }

在页面中,这样使用:

  import * as dmp from './map'
  onMounted(() =>{
      dmp.drawMap()
  })
  
  
   <div style="background: none;width:100%;height: 25rem;margin-top: -3.5rem;" id="map-chart"></div>

地图的json数据,来自:datav.aliyun.com/portal/scho…

实现方式参考了:gitee.com/weather0118…