vue3+echart绘制中国地图并根据后端返回的坐标实现涟漪动画效果

1.效果图

2.前期准备

main.js
app.use(BaiduMap, {
    // ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
    ak: 'sRDDfAKpCSG5iF1rvwph4Q95M6tDCApL',
    // v:'3.0',  // 默认使用3.0
    // type: 'WebGL' // ||API 默认API  (使用此模式 BMap=BMapGL)
});

  

index.html
<script type="text/javascript" src="https://api.map.baidu.com/getscript?v=3.0&ak=sRDDfAKpCSG5iF1rvwph4Q95M6tDCApL"></script>
 <div>
        <div id="main6"
             style="width:650px;height:400px;"></div>
    </div>

3.js,注意:import 'echarts/map/js/china.js'; 引入时需要注意当前echart是否为4.+版本,如否降级

npm install echarts@4.1.0 --save

<script setup>
import * as echarts from 'echarts';
import 'echarts/extension/bmap/bmap';
import {onMounted,defineProps} from 'vue';
import 'echarts/map/js/china.js';  //关键引入china.js    
  const props = defineProps(['data'])
       var initData = JSON.parse(JSON.stringify(props)).data
       const initMap = () =>{
            var chartDom = document.getElementById('main6');
            var myChart = echarts.init(chartDom);
            
            var option;
            option = {
            backgroundColor: 'rgba(0,0,0,.1)',
            title: {
                text: '当前服务地区',
                left: 'center',
                textStyle: {
                   color: '#fff'
                }
            },
            tooltip: {
                trigger: 'item'
            },
   
            geo: {            //绘制中国地图
                 map: 'china',//关键必须写
                 zoom: 10,//地图缩放比例
                 center: [120.22221, 30.2084],//地图位置
                  roam: true, //是否允许鼠标放大缩小,拖拽功能
                 itemStyle: {  //地图省份的样式;包括板块颜色和边框颜色
                     areaColor: 'rgba(0,0,0,.5)', //地图区域的颜色
                     borderColor: "#ffffff",        //地图省份边框颜色
                 },
                
                 label: {  //省份字体样式;包括是否展示,字体大小和颜色
                     normal: {
                         show:true,
                         fontSize: "11.5",
                         color: "rgb(107,102,102)"
                     }
                 },
                 
                 emphasis: { //鼠标划过的高亮设置;包括省份板块颜色和字体等
                     itemStyle: {
                         areaColor: '#ffffff',
                     },
                     label: {
                         show: true,
                         color:"rgb(0,0,0)"
                     }
                 }
             },
      
            series: [
                {
                name: '地理坐标', 
                type: 'effectScatter', //样式,带有涟漪特效动画气泡图
                coordinateSystem: 'geo', //该系列使用的坐标系,客官往上看
                data:[],  // data的数据格式为[{name:'海门',value:['121.15','31.89',200]},{name:'海门111',value:['121.15','31.89',200]}...] 
                encode: {
                    value: 2
                },
                showEffectOn: 'render', //绘制完成后显示特效
                rippleEffect: { //涟漪特效相关配置。
                    brushType: 'stroke' //波纹的绘制方式
                },
                symbolSize: 10,  //标记的大小,可以设置数组或函数返回值的形式
                hoverAnimation: true, // 鼠标移入放大圆
                label: {   //图形上的文本标签,可用于说明图形的一些数据信息,比如值,名称等
                    formatter: '{b}',
                    position: 'right',
                    show: true
                },
                itemStyle: {    //样式
                    color: '#f4e925',
                    shadowBlur: 10,
                    shadowColor: '#333'
                },
                emphasis: { //高亮状态下的多边形和标签样式
                    scale: true
                },
                zlevel: 1
                }
            ]
            };
            // 处理数据 将数据转换成echart可以识别的数据格式,例如[{name:'海门',value:['121.15','31.89',200]},{name:'海门111',value:['121.15','31.89',200]}...],详情请查echart地图坐标
            let result = []
            initData.map((item,index)=> {
                let child = {name: '', value:['','']}
                child.name = item.commName
                child.value[0] = Number(item.mapX)
                child.value[1] = Number(item.mapY)
                child.value[2] = Number(item.mapY)
                result.push(child)
            })
            option.series[0].data = result
            // myChart.registerMap('china', { geoJSON: chinaMap })
            option && myChart.setOption(option);
            // 窗口自适应
            (window.onresize = function () {
                myChart.resize();
            })
        }

        onMounted(() => {   
            initMap()
        }) 
</script>

4.end:本人查阅资料百度花了大量时间,资料都是大同小异,由于自己过于浮躁,对资料研究不彻底,只想着复制粘贴完事,导致出现问题就换一个案例,并没有查找bug的原因,还需静下心来,踩过的坑希望老铁们直接跳过。

### 回答1: Vue3+Echarts+Java数据报表统计管理系统源码是一个基于Vue3和Echarts前端框架以及Java后端开发的一套数据报表统计管理系统的源代码。 该系统的主要功能包括数据可视化、数据报表生成与展示、数据统计与分析等。通过使用Vue3作为前端框架,可以实现页面的快速渲染和交互效果的优化。而Echarts作为数据可视化的工具,可以将数据以图表的形式展示出来,提供更直观、易懂的数据分析结果。 在后端方面,系统使用Java作为编程语言进行开发。Java是一种通用的、面向对象的编程语言,具有跨平台性和稳定性,非常适合用于开发后端服务。通过Java,可以实现数据的存储、查询和处理,并将处理结果返回前端进行展示。 系统的源码将涵盖前后端的代码,其中前端部分将包括Vue3的组件和路由配置,以及与后端进行通信的功能代码。后端部分将包括用Java编写的接口和数据处理逻辑代码,以及与数据库进行交互的代码。 总之,Vue3+Echarts+Java数据报表统计管理系统源码将提供一个完整的数据报表统计管理系统的开发框架,可以帮助开发者快速搭建和定制自己的数据可视化和统计分析系统。 ### 回答2: Vue3 echart java数据报表统计管理系统源码是一个基于Vue3和Java开发的一个数据报表统计管理系统。该系统主要用于对数据进行统计分析和报表生成。 系统使用了Vue3作为前端框架,提供了丰富的UI组件和数据绑定功能,可以方便地开发出用户友好的界面。同时,系统还使用了echart作为数据可视化工具,可以将统计结果以图表的形式直观地呈现给用户。 在后端开发方面,系统使用了Java作为主要开发语言,使用了Spring Boot框架进行开发。Spring Boot提供了丰富的功能和组件,使得开发人员可以更加高效地进行开发。系统还使用了MyBatis作为持久层框架,可以方便地与数据库进行交互。 系统的主要功能包括数据的录入,数据的处理和报表的生成。用户可以在系统中录入需要进行统计的数据,然后系统会对数据进行处理,并生成相应的报表。报表可以以各种图表的形式展示出来,如柱状图、饼状图、折线图等,用户可以根据需要选择合适的图表进行查看。 此外,系统还提供了一些辅助功能,如数据导出和导入、权限管理、用户管理等。用户可以根据需要对系统进行相应的设置和管理。 总之,Vue3 echart java数据报表统计管理系统源码是一个功能丰富、界面友好的数据报表统计管理系统,可以帮助用户轻松地进行数据统计分析和报表生成。 ### 回答3: vue3 echart java数据报表统计管理系统源码是一个基于Vue3和Echart的数据报表统计管理系统的源代码。 该系统的开发语言为Java,采用了Vue3作为前端框架,并通过Echart实现数据可视化和报表功能。它具有以下特点和功能: 1. 界面美观:使用Vue3作为前端框架,可以提供丰富的UI组件和交互效果,使系统具有良好的用户体验和界面美观。 2. 数据可视化:利用Echart作为数据可视化工具,可以将数据以图表的形式直观地展示出来,帮助用户更好地理解数据和分析统计结果。 3. 数据报表:系统提供了丰富的报表功能,可以根据用户的需求生成各种类型的报表,包括柱状图、折线图、饼图等,帮助用户更好地进行数据分析和决策。 4. 数据统计:系统可以对输入的数据进行统计分析,包括求和、平均值、最大值、最小值等统计指标的计算,帮助用户深入了解数据的特征和趋势。 5. 权限管理:系统具备权限管理功能,可以根据用户的角色和权限对系统的访问进行限制,保证数据的安全性和机密性。 6. 操作便捷:系统提供了用户友好的操作界面和交互方式,方便用户对数据进行查询、筛选、导出等操作,提高工作效率。 总之,该系统源码结合了Vue3、Echart和Java的优势,提供了一个功能完善、界面美观的数据报表统计管理系统,可广泛应用于各种数据分析和决策场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值