当前位置: 首页 > news >正文

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)).dataconst 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.commNamechild.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的原因,还需静下心来,踩过的坑希望老铁们直接跳过。

http://www.lryc.cn/news/275797.html

相关文章:

  • HCIA-Datacom题库(自己整理分类的)_09_Telent协议【13道题】
  • Git专栏篇
  • Java-字符串-String类
  • ubuntu安装docker指定版本
  • 说一下 jsp 的 4 种作用域?
  • 性能分析与调优: Linux 使用ELRepo升级CentOS内核
  • 【【RTC实时时钟实验 -- 在HDMI上显示-FPGA 小实验】】
  • Flutter 图片和资源的高效使用指南
  • RedisTemplate 怎么获取到链接信息?怎么获取到所有key?怎么获取指定key?
  • 【Unity】动态申请权限
  • tp8/6 插件PhpOffice\PhpSpreadsheet导入表格
  • Android studio VideoView 应用设计
  • Python基础(十八、文件操作读取)
  • Mac 16g约等于Windows多少g?
  • 快麦ERP退货借助APPlink快速同步CRM
  • springMVC获取请求参数的方式
  • android常用方法
  • Linux内核--网络协议栈(一)Socket通信原理和实例讲解
  • Spring事务(2):声明式事务管理案例-转账(xml、注解)
  • NACHI机器人模拟示教器如何切换中文
  • 用通俗易懂的方式讲解:使用 Mistral-7B 和 Langchain 搭建基于PDF文件的聊天机器人
  • 综合智慧能源监测管理平台,实现能源管理“透明”化
  • 【大数据进阶第三阶段之Datax学习笔记】使用阿里云开源离线同步工具DataX 实现数据同步
  • kotlin chunked 和 windowed
  • C语言光速入门笔记
  • Flutter+Go_Router+Fluent_Ui仿阿里网盘桌面软件开发跨平台实战-买就送仿小米app开发
  • 内联函数的作用
  • Simpy简介:python仿真模拟库-02/5
  • Kafka高级应用:如何配置处理MQ百万级消息队列?
  • LIN总线学习笔记(1)-总线传输规范