echarts引入地图

<template>
     <div ref="myChartChina" :style="{width: '100%', height: '500px',background:'pink'}"></div>
</template>
 
<script>
import * as echarts from "echarts";
import '@/assets/js/china.js' // 引入中国地图数据

export default {
mounted() {
    this.ChinaMap();
  },
    methods:{
            ChinaMap(){
      var that=this;
       
      //模拟数据
      let data = [
          {name: '威海', value: 90 ,num: 5,id:8},
          {name: '青岛', value: 102 , num: 15, id:16},
      ];
      let geoCoordMap = {
          '威海':[122.12348,37.50212],
          '青岛':[120.39629,36.30744],
      };
 
      var 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),
                    num: geoCoord.concat(data[i].num),
                    id: geoCoord.concat(data[i].id)
                  });
              }
          }
          return res;
      };
 
    var bar_dv = this.$refs.myChartChina;
      let myChartChina = echarts.init(bar_dv) //这里是为了获得容器所在位置    
        window.onresize = myChartChina.resize;
        myChartChina.setOption({ // 进行相关配置
          backgroundColor: '#fff',//地图背景色
          geo: { // 这个是重点配置区
            map: 'china', // 表示中国地图
            label: {
              normal:{
                show: true, // 是否显示对应地名
                formatter(v) {
                return v.name == "山东" ?  "山东" : "";
                },
                textStyle: { //字体颜色
                  color: '#fff'
                }
              },
              emphasis: {
                show: false,
                textStyle: {
                  color: '#fff'
                }
              }
            },
            roam: true,
            itemStyle: {
              normal: {
                borderWidth: 1, // 地图边框宽度
                borderColor: '#183363', // 地图边框颜色
                areaColor: '#8bb0f0' // 地图颜色
              },
              emphasis: {//选中省份的颜色
                areaColor: '#026295',
                shadowOffsetX: 0,
                shadowOffsetY: 0,
                shadowBlur: 0,
                borderWidth: 1,
                shadowColor: '#fff'
              }
            }
          },
          //滑动显示数据
          tooltip: {
              trigger: 'item',
              formatter: function(params) {
                  return params.name + '<br/>' + ' 猪场: ' + params.data.num[2] + '个';
              }
          },
          series: [{
              name: '散点',
              type: 'scatter',
              coordinateSystem: 'geo',
              color:"#f333bf",//点的颜色
              data: convertData(data),
              symbolSize: 25,//点的大小
              symbol:"pin",//点的样式
              cursor:"pointer",//鼠标放上去的效果
              label: {
                normal: {//默认展示
                    show: false
                },
                emphasis: {//滑过展示
                    show: false
                }
              },
              itemStyle: {
                emphasis: {
                  borderColor: '#a30979',
                  borderWidth: 5
                }
              }
            },
 
            {
              type: 'map',
              map: 'china',
              geoIndex: 0,
              aspectScale: 0.75,
              tooltip: {
                  show: false
              }
            },
              
          ],
        })
        // if (myChartChina && typeof myChartChina === "object") {
        //     myChartChina.setOption(myChartChina, true);
        // }
        myChartChina.on('click', function (params) { //点击事件
          if (params.componentType === 'series') {
            if(params.data){
              that.TipsList=params.data
              that.ifbox=true
              that.boxPosition()
 
            }else{
              that.ifbox=false
            }
          }
        });
    },

    }
}
</script>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值