echarts有涟漪效果的世界地图

项目要求实现一个带涟漪效果的世界地图。
设计要求哪个区域有值,哪个区域就高亮,颜色不要求,全部设成同一种就行。
我参考了echats官网的样例,官网样例是这样的:
在这里插入图片描述
附官网地址:
https://echarts.apache.org/examples/zh/editor.html?c=effectScatter-map
其实和我想要的效果已经很接近了,再改成世界地图,有数值的国家高亮就ok了。

任务:
1.改成世界地图
2.假设只有中国有数据,则中国地区出现涟漪圆点,并且国家颜色变黑

我改造的结果如下:

option = {
    backgroundColor: '#404a59',
    tooltip : {
        trigger: 'item'
    },
    geo: {
        map: 'world',
        roam: true,// 是否开启鼠标缩放和平移漫游
        zoom: 1.2,// 将地图放大1.2倍
        label: {
            show: false
        },
        itemStyle: {
            areaColor: '#323c48',
            borderColor: '#111'
        },
        emphasis: {
            label: {
                show: false
            },
            itemStyle: {
                areaColor: '#2a333d'
            }
        },
        // 有值的区域设置成相同的areaColor,用visualMap不太好操控,所以我用了regions。
        // 国家记得首字母大写,否则不起效
        regions: [{
         name: 'China',
         itemStyle: {
           areaColor: '#111'
        }
     }]
    },
    series : [
        {
            name: 'Top 5',
            type: 'effectScatter',
            coordinateSystem: 'geo',// 指定使用地理坐标系
            data: [{name:'China',value:[104.195397,35.86166,100]}],
            // 用来指定value数组中的第三个数字才是value值
            encode: {
                value: 2
            },
            //设置圆圈大小
            symbolSize: 4,
            //设置涟漪大小等
            rippleEffect: {
                brushType: 'stroke',
                scale:5
            },
            hoverAnimation: true,
            itemStyle: {
                color: '#f4e925',
                shadowBlur: 10,
                shadowColor: '#333'
            },
            zlevel: 1
        }
    ]
};

最终效果图
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值