echarts地图涟漪、线集效果

在这里插入图片描述

<template>
  <div id="container"></div>
</template>

<script>
import * as echarts from "echarts";
// 地图的json数据
import { china } from "./china";
export default {
  mounted() {
    this.$nextTick(() => {
      this.getMap();
    });
    console.log(china, "json数据");
  },
  methods: {
    getMap() {
      var dom = document.getElementById("container");
      var myChart = echarts.init(dom);
      var option;
      var geoJson = china;
      myChart.showLoading();
      myChart.hideLoading();
      console.log(geoJson, "geoJson");
      echarts.registerMap("china", geoJson);
      myChart.setOption(
        (option = {
          geo: {
            type: "map",
            map: "china",
            top: "5%",
            bottom: "5%",
            label: {
              show: true,
              fontFamily: " Microsoft YaHei",
              fontSize: 12,
              color: "#fff",
              // rotate: -35,
              // https://echarts.apache.org/zh/option.html#geo.label.rich
            },

            itemStyle: {
              //每一块区域的样式
              areaColor: "#0593A3",
              borderColor: "#9FCFFD",
              borderWidth: 0.5,
            },
            emphasis: {
              disabled: false, //取消鼠标经过高亮
              itemStyle: {
                areaColor: "#31C6BC",
              },
            },
          },

          backgroundColor: "#071510",
          //地理坐标系组件。地理坐标系组件用于地图的绘制,支持在地理坐标系上绘制散点图,线集。
          series: [
            {
              type: "lines",
              coordinateSystem: "geo",
              zlevel: 5,
              effect: {
                show: true,
                period: 2, //箭头指向速度,值越小速度越快
                trailLength: 0.2, //特效尾迹长度[0,1]值越大,尾迹越长重
                symbol: "triangle", //箭头图标
                symbolSize: 5, //图标大小
                color: "#37F6E0", // 图标颜色
              },
              lineStyle: {
                normal: {
                  show: true,
                  width: 1, //尾迹线条宽度
                  opacity: 1, //尾迹线条透明度
                  curveness: 0.3, //尾迹线条曲直度
                  color: "#37F6E0", // 飞线颜色
                },
                color: "#37F6E0",
              },
              data: [
                {
                  coords: [
                    [102.712251, 25.040609], // 起点  云南
                    [103.823557, 36.058039], // 终点  甘肃
                  ],
                },
              ],
            },
            {
              type: "effectScatter",
              coordinateSystem: "geo",
              effectType: "ripple", //涟漪特效
              showEffectOn: "render",
              // 散点样式
              rippleEffect: {
                color: "#37F6E0",
                period: 2, // 涟漪特效的动画周期
                scale: 3, // 涟漪特效动画中波纹的最大缩放比例
                brushType: "fill", // 涟漪特效的波纹绘制方式
              },
              // 散点大小
              symbolSize: 15,
              hoverAnimation: true,
              // 标志的样式
              itemStyle: {
                color: "rgba(55,246,224, .7)",
              },
              zlevel: 3,
              data: [
                { name: "云南", value: [102.712251, 25.040609] },
                { name: "甘肃", value: [103.823557, 36.058039] },
              ],
            },
          ],
        })
      );
    },
  },
};
</script>

<style>
#container {
  width: 770px;
  height: 600px;
}
</style>
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的示例代码,演示如何在echarts涟漪效果地图中添加label点击事件: ```javascript // 初始化echarts实例 var myChart = echarts.init(document.getElementById('myChart')); // 配置涟漪效果地图 var option = { series: [{ type: 'effectScatter', coordinateSystem: 'geo', data: [ {name: '北京', value: [116.46, 39.92]}, {name: '上海', value: [121.48, 31.22]}, {name: '广州', value: [113.23, 23.16]} ], rippleEffect: { brushType: 'stroke' }, label: { show: true, formatter: '{b}', position: 'right' }, itemStyle: { color: 'purple' } }], geo: { map: 'china', label: { emphasis: { show: false } }, roam: true, itemStyle: { normal: { areaColor: '#323c48', borderColor: '#111' }, emphasis: { areaColor: '#2a333d' } } } }; // 绑定label点击事件 myChart.on('click', function (params) { if (params.componentType === 'series' && params.seriesType === 'effectScatter') { alert('您点击了' + params.name); } }); // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); ``` 在上面的代码中,我们先初始化了一个echarts实例,然后配置了一个涟漪效果地图。在配置中,我们设置了一个label,用于显示地图上的城市名称。接着,我们通过`myChart.on('click', function (params) {...})`绑定了一个label点击事件的处理函数。在处理函数中,我们判断`params.componentType`和`params.seriesType`是否分别等于`series`和`effectScatter`,如果是,则表示用户点击了一个label,我们就可以通过`params.name`获取到该城市的名称,然后进行相应的处理。 注意,由于涟漪效果地图是基于geo组件实现的,因此我们需要在geo组件上绑定点击事件,而不是在series组件上绑定。同时,我们还需要判断`params.seriesType`是否等于`effectScatter`,因为在涟漪效果地图中,我们使用了effectScatter类型的散点图来展示城市的位置信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值