vue里面引用echarts制作攻击防御地图可视化视图

本文介绍如何在Vue项目中利用ECharts创建攻击防御的可视化地图,通过ECharts的详细文档,实现了地图的高亮、鼠标悬停显示攻击次数及坐标大小等功能。附带了一个静态页面的代码示例,需要引入bmap.min.js、echarts.js和百度地图API。
摘要由CSDN通过智能技术生成

vue里面使用echarts制作攻击防御可视化视图echarts的攻击防御可视化视图

百度的echarts其实是很强大他的文档很详细,我工作中正好需要做一个可视化的攻击防御我在这里总结一下,给看到的小伙伴排排坑,废话不多说先上一个做出来的效果图
在这里插入图片描述
这是我的做出来最终效果他原来效果是
在这里插入图片描述
这个原效果在echarts社区里面就能找到,他地图使用的是百度提供的免费地图API这个可以修改颜色等我在的原基础上添加了攻击的坐标高亮、鼠标移入上去有攻击次数值、根据攻击值显示坐标的大小

maps(){
	    // var geoCoorddata = {
		//         '武汉': [114.30539299999998, 30.593099],
		//         '深圳': [114.05786499999999, 22.543096],
		//         '北京': [116.40739499999995, 39.904211],
		//         '阿克苏': [80.26338699999997, 41.167548]
		//     },
        var geoCoorddata = this.coordinate  //geoCoorddata的数据格式在上面
		// var SHdata = [
		        //     [{
		        //         name: '上海'
		        //     }, {
		        //         name: '武汉',
		        //         value: 14099
		        //     }],
		        //     [{
		        //         name: '上海'
		        //     }, {
		        //         name: '阿克苏',
		        //         value: 50
		        //     }],
		        //     [{
		        //         name: '上海'
		        //     }, {
		        //         name: '深圳',
		        //         value: 14000
		        //     }]
		   // ];
        var SHdata = this.placeCounts  //SHdata的数据格式在上面
        var series = [];
        [
            ['上海', SHdata]
        ].forEach((item, i)=> {
            series.push({
                type: 'lines',
                mapType: 'china',
                coordinateSystem: 'bmap',
                zlevel: 1,
                // data: [{
		            //     name: '武汉',
		            //     toname: '北京',
		            //     coords: [geoCoorddata['武汉'], geoCoorddata['北京']]
		            // }, {
		            //     name: '深圳',
		            //     toname: '北京',
		            //     coords: [geoCoorddata['深圳'], geoCoorddata['北京']]
		            // }, {
		            //     name: '阿克苏',
		            //     toname: '北京',
		            //     coords: [geoCoorddata['阿克苏'], geoCoorddata['北京']]
		         // }],
                data: this.List2,//data数据格式在上面
                //线上面的动态特效
                effect: {
                    show: true,
                    period: 6,
                    trailLength: 0.7,
                    color: '#fff',
                    symbolSize: 4
                },
                lineStyle: {
                    normal: {
                        width: '',
                        color: '#a6c84c',
                        curveness: 0.2
                    }
                }
            }, {
                type: 'effectScatter',
                mapType: 'china',
                coordinateSystem: 'bmap',
                zlevel: 3,
                data: [{
                    name: '',
                    value: geoCoorddata['上海'].concat(200)
                }, ],
                rippleEffect: {
                    period: 10,
                    scale: 5,
                    brushType: 'fill'
                },
            }, {
                type: 'effectScatter',
                coordinateSystem: 'bmap',
                zlevel: 2,
                rippleEffect: {
                    brushType: 'stroke'
                },
                symbolSize: function(val) {
                    if (val[2] >= 10000) {
                        return val[2] / 100 + 30
                    } else if (val[2] >= 1000) {
                        return val[2] / 100 + 10
                    } else if (val[2] <= 10) {
                        return 10
                    } else {
                        return val[2] / 100
                    }
                },
                showEffectOn: 'render',
                itemStyle: {
                    normal: {
                        color: '#a6c84c',
                        opacity: .1
                    }
                },
                data: item[1].map(function(dataItem) {
                    return {
                        name: dataItem[1].name.concat([dataItem[1].value]),
                        value: geoCoorddata[dataItem[1].name].concat([dataItem[1].value])
                    }
                })
            });
        })
        my
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值