e-charts地图+散点图分别实现分级显示

e-charts地图分级显示,散点图也分级显示;官网上只有单独的散点图分级显示或者单独的地图分级显示,这里我们把两者联系起来,通过geo坐标系配置项;

效果图:

上代码:

配置项:

echartsOption:
{
    title: {
      text: "",
      subtext: "",
      sublink: "",
    },
    //地图图例
    visualMap: {
      type: "piecewise",
      right: 0,
      backgroundColor: "",
      align: "left",
      padding: [5, 40, 5, 5],
      pieces: [
        { min: 50, color: "#1a8aec" },
        { min: 40, max: 49, color: "#3ea1f8" },
        { min: 30, max: 39, color: "#52b3ff" },
        { min: 20, max: 29, color: "#7cc5ff" },
        { min: 10, max: 19, color: "#c3ebff" },
        { min: 0, max: 9, label: "0-9", color: "#bbdefd" }, //label自定义文字
      ],
    },
    //地理坐标系
    geo: {
      tooltip: {
        show: true,
      },
      map: "HK", //参考地图,HK不是固定值,是通过echarts.registerMap设置的地图名称,后面代码里会有
      roam: true,
      zoom: 1.2,
      //控制地图字体的样式
      label: {
        show: true,
        color: "#000000",
        fontWeight: 400,
        fontSize: 24,
        shadowBlur: 24,
        textBorderColor: "#ffffff",
        textBorderWidth: 5,
        textBorderType: "solid",
      },
    },
    series: [
      //地图
      {
        name: "广东省任务情况",
        type: "map",
        coordinateSystem: "geo", //参考坐标系,坐标系里有地图
        geoIndex: 0,
        label: {
          show: true,
          position: "inside",
          formatter: function (val) {
            return val.name;
          },
        },
        data: [],
      },
      //散点
      {
        name: "广东省任务情况",
        type: "scatter",
        coordinateSystem: "geo",
        geoIndex: 0,
        data: [],
        symbolSize: function (val) {
          if (val[2] <= 30) {
            return 30;
          } else if (val[2] > 70) {
            return 70;
          } else {
            return val[2];
          }
        },
        label: {
          formatter: function (val) {
            return val.value[2];
          },
          position: "inside",
          show: true,
          color: "#1a8aec",
          fontWeight: "bolder",
          fontSize: 16,
        },
        emphasis: {
          label: {
            show: true,
          },
        },
        itemStyle: {
          color: "#ffffff",
          opacity: 1,
          borderWidth: 6,
          borderType: "solid",
          borderColor: "#1a8aec99",
        },
      },
    ],
  },

数据:

行政区数据GeoJson格式

这里Json的代码不好上传给个网址吧

https://geo.datav.aliyun.com/areas_v3/bound/440000_full.json

数值数据和散点坐标数据

      //数据
      taskData: [
        { name: "广州市", value: 46 },
        { name: "韶关市", value: 47 },
        { name: "深圳市", value: 24 },
        { name: "珠海市", value: 37 },
        { name: "汕头市", value: 23 },
        { name: "佛山市", value: 55 },
        { name: "江门市", value: 14 },
        { name: "湛江市", value: 14 },
        { name: "茂名市", value: 30 },
        { name: "肇庆市", value: 32 },
        { name: "惠州市", value: 49 },
        { name: "梅州市", value: 35 },
        { name: "汕尾市", value: 3 },
        { name: "河源市", value: 5 },
        { name: "阳江市", value: 14 },
        { name: "清远市", value: 11 },
        { name: "东莞市", value: 1 },
        { name: "中山市", value: 14 },
        { name: "潮州市", value: 8 },
        { name: "揭阳市", value: 24 },
        { name: "云浮市", value: 30 },
      ],
      //散点图地理坐标
      geoCoord: {
        广州市: [113.2841662, 23.12705674],
        韶关市: [113.5889633, 24.79974242],
        深圳市: [114.07138987, 22.54127292],
        珠海市: [113.35987762, 22.02987993],
        汕头市: [116.70380257, 23.37010142],
        佛山市: [113.11925395, 23.02903214],
        江门市: [113.09256928, 22.59021562],
        湛江市: [110.36231105, 21.27493033],
        茂名市: [110.91674406, 21.65938978],
        惠州市: [114.40894817, 23.08104344],
        梅州市: [116.11865541, 24.29821117],
        汕尾市: [115.36825029, 22.77509597],
        河源市: [114.69315095, 23.74462558],
        阳江市: [111.97556344, 21.85955712],
        清远市: [113.0472229, 23.682209],
        东莞市: [113.73608816, 23.04196603],
        中山市: [113.37447051, 22.52019497],
        潮州市: [116.62068942, 23.6666098],
        揭阳市: [116.33232552, 23.54515716],
        云浮市: [112.04311314, 22.92949273],
        肇庆市: [112.46775422, 23.05060538],
      },

具体操作

  methods: {
    /**处理坐标数据 */
    dealGeoCoord() {
      var res = [];
      for (let i = 0; i < this.taskData.length; i++) {
        let geoCoord = this.geoCoord[this.taskData[i].name];
        if (geoCoord) {
          res.push({
            name: this.taskData[i].name,
            value: geoCoord.concat(this.taskData[i].value),
            visualMap: false, //设置散点颜色不受图例visualMap控制
          });
        }
      }
      return res;
    },

    /**echarts画图 */
    drawEcharts() {
      if (this.echart) {
        this.echart.dispose();
        this.echart = null;
      }
      this.$nextTick(() => {
        //创建echart
        let dom = this.$refs["workOverviewMap"];
        this.echart = this.$echarts.init(dom);
        //引入GeoJson地图
        let geoJson = require("./WorkOverviewMapGeoJson");
        this.$echarts.registerMap("HK", geoJson);
        //设置配置
        this.echart.setOption(this.echartsOption);

        this.controlEchartSize();
      });
    },


    /**控制echart宽高动态改变 */
    controlEchartSize() {
      window.addEventListener("resize", () => {
        if (this.echart) {
          this.echart.resize();
        }
      });
    },
  },

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值