echars中国地图

vue中使用echars做出中国地图

这里只是个小demo,根据流程操作可以实现基础的中国地图,样式等后面根据需要自己去调

1.下载中国地图

echars官网示例中,没有中国地图的json,需要自己去下载

https://datav.aliyun.com/tools/atlas/index.html

 

 

2.修改地图json

将.json文件修改为.js,并在首行添加

export const chinaMapData =

 

3.在页面中引入.js地图文件

注意修改.js文件的路径

import {chinaMapData} from "@/utils/zhongguo.js";

4.将地图代码放入图表函数中

我这里放到了getChart: function() {}函数中

mounted() {
    this.$nextTick(() => {
      this.getChart();
    })
  },
  methods: {
    getChart: function() {
    
    }
  }

注意修改div的id

      var chartDom = document.getElementById('involved_region_div');
      var myChart = echarts.init(chartDom);
      var option;

      echarts.registerMap("china",chinaMapData);
      option = {
        title: {  //标题样式
          text: '涉案区域分布',
          x: "left",
          textStyle: {
              fontSize: 18
          },
        },
        tooltip: {
          formatter:function(params){//提示框浮层内容格式器,支持字符串模板和回调函数两种形式
            return params.name+'<br />'+params.seriesName+':'+ (params.value ? params.value:0);
          }
        },
        toolbox: {
          show: true,
          //orient: 'vertical',
          left: 'left',
          top: 'top',
          feature: {
            
          }
        },
        geo: {//地理坐标系组件
          map: 'china',//注册的地图名称
          roam: false,//是否开启鼠标缩放和平移漫游。默认不开启。如果只想要开启缩放或者平移,可以设置成 'scale' 或者 'move'。设置成 true 为都开启
          zoom: 1.2,//当前视角的缩放比例
          label: {//图形上的文本标签(显示地图省份)
              normal: {
                  show: true,
                  fontSize:'8',
                  color: 'rgba(0,0,0,0.7)'
              }
          },
          itemStyle: {
              normal:{
                  borderColor: 'rgba(0, 0, 0, 0.2)'//图形的描边颜
              },
              emphasis:{
                  areaColor: '#F3B329',
                  shadowOffsetX: 0,
                  shadowOffsetY: 0,
                  shadowBlur: 20,
                  borderWidth: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
          }
        },
        //dataRange 和 visualMap 都是根据数值展示不同的颜色,根据需要选择。dataRange:颜色块  visualMap:渐变色条
        /*
        dataRange: {//左下角,颜色块。
          x: 'left',
          y: 'bottom',
          splitList: [
              {start: 5000, label: '> 41  极高', color: '#b80909'},
              {start: 3000, end: 5000, label: '31 - 40  高', color: '#e64546'},
              {start: 2000, end: 3000, label: '21 - 30  中', color: '#f57567'},
              {start: 1000, end: 2000, label: '11 - 20  低', color: '#ff9985'},
              {start:0, end: 1000,label: '0 -10 无数据', color: '#ffe5db'}
          ]
        },
        */
        visualMap: {//左下角,渐变颜色条
          min: 0,
          max: 60,
          text: ["高", "低"],
          right: "5%",
          bottom: "10%",
          textStyle: {
            color: "#1E1E1E",
            map: "china",
          },
          inRange: {
            color: ['#E0FFFF', '#006EDD'],
          },
          show:true,
          calculable: true,
        }, 
        series: [
          {
            name: '涉案',
            type: "map",
            geoIndex: 0,
            emphasis: {
              label: {
                show: true,
              }
            },
            data: [
              { name: "上海市", value: 23 },
              { name: "江苏省", value: 50 },
              { name: "山东省", value: 60 },
              { name: "安徽省", value: 10 },
            ]
          }
        ]
      };
      option && myChart.setOption(option);

5.效果

 

posted @ 2022-08-08 16:01  白云之间  阅读(105)  评论(0编辑  收藏  举报