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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/289962.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GaussDB数据库使用COPY命令导数

目录 一、前言 二、GaussDB数据库使用COPY命令导数语法 1、语法COPY FROM 2、语法COPY TO 3、特别说明及参数示意 三、GaussDB数据库使用COPY命令导数示例 1、操作步骤 2、准备工作&#xff08;示例&#xff09; 3、把一个表的数据拷贝到一个文件&#xff08;示例&…

计算机视觉中的神经网络可视化工具与项目

前言 本文介绍了一些关于神经网络可视化的项目&#xff0c;主要有CNN解释器&#xff0c;特征图、卷积核、类可视化的一些代码和项目&#xff0c;结构可视化工具&#xff0c;网络结构手动画图工具。 CNN解释器 这是一个中国博士发布的名叫CNN解释器的在线交互可视化工具。 主要…

Eureka服务端

一般我们Server端会像下图一样&#xff0c;引入Eureka&#xff0c;下面就通过这个来分析Eureka服务端源码流程 一、服务端配置 EnableEurekaServer会引入EurekaServerMarkerConfiguration类 EurekaSeverMarkerConfiguration最终会引入Marker对象&#xff0c;这就是一个标记…

Canal+RabbitMQ实现MySQL数据同步至ClickHouse

ClickHouse作为一个被广泛使用OLAP分析引擎&#xff0c;在执行分析查询时的速度优势很好的弥补了MySQL的不足&#xff0c;但是如何将MySQL数据同步到ClickHouse就成了用户面临的第一个问题。本文利用Canal来实现ClickHouse实时同步MySQL数据&#xff0c;使用RabbitMQ来做消息队…

c++语言基础16-出现频率最高的字母

题目描述 给定一个只包含小写字母的字符串&#xff0c;统计字符串中每个字母出现的频率&#xff0c;并找出出现频率最高的字母&#xff0c;如果最高频率的字母有多个&#xff0c;输出字典序靠前的那个字母。 输入描述 包含多组测试数据&#xff0c;每组测试数据占一行。 输…

在ARMv8中aarch64与aarch32切换

需求描述 在项目调试过程中,由于内存或磁盘空间不足需要将系统从aarch64切换到aarch32的运行状态去执行,接下来记录cortexA53的调试过程。 相关寄存器描述 ARM64: SPSR_EL3 N (Negative):表示运算结果的最高位,用于指示运算结果是否为负数。 Z (Zero):表示运算结果是否…

Spark Streaming的DStream与窗口操作

实时数据处理已经成为当今大数据时代的一个重要领域&#xff0c;而Spark Streaming是Apache Spark生态系统中的一个关键模块&#xff0c;用于处理实时数据流。本文将深入探讨Spark Streaming中的DStream&#xff08;离散流&#xff09;概念以及如何使用窗口操作来处理实时数据。…

如何将Docker中的Tomact彻底删除

目录 前言&#xff1a; 一.删除Tomcat容器 列出所有在运行的容器信息 ​编辑 如果tomcat容器正在运行先停止&#xff0c;可以通过容器id或者容器名称 再次查看容器运行情况&#xff0c;可以看到没有运行中的容器了. 查看所有容器&#xff08;-a表示查看所有&#xff09;无…

【数据结构】一些数组面试题以及顺序表的思考

简单不先于复杂&#xff0c;而是在复杂之后。 文章目录 1. 数组相关面试题2. 顺序表的问题及思考 1. 数组相关面试题 1.原地移除数组中所有的元素val&#xff0c;要求时间复杂度为O(N)&#xff0c;空间复杂度为O(1)。 int removeElement(int* nums, int numsSize, int val) {i…

Ps:创建基于颜色的蒙版

有时候画面上的某种颜色显得不是很和谐&#xff0c;如下图所示。 将画面上的某种颜色换掉&#xff0c;也是得到创意效果的一种重要手段。 演示视频 如果能创建好相关颜色的蒙版&#xff0c;这样在替换颜色的时候就会更加方便。 ◆ ◆ ◆ 创建基于颜色的蒙版 主要思路&#xf…

8. C++ function的介绍和使用

std::function的介绍和使用 std::function是一个可变参类模板&#xff0c;是一个通用的函数包装器&#xff08;Polymorphic function wrapper&#xff09;。std::function的实例可以存储、复制和调用任何可复制构造的可调用目标&#xff0c;包括普通函数、成员函数、类对象&am…

系列七、Ribbon

一、Ribbon 1.1、概述 Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具&#xff0c;是Netflix发布的一款开源项目&#xff0c;其主要功能是提供客户端的软件负载均衡算法和服务调用&#xff0c;Ribbon客户端组件提供一系列完善的配置项&#xff0c;例如&#xff1a…

组合算法简单实现

组合算法 目录概述需求&#xff1a; 设计思路实现思路分析1.简单的字符串方式 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challenge …

网页爬虫对于网络安全有哪些影响?

在当今信息爆炸的时代&#xff0c;网络已经成为人们获取信息、交流思想和开展业务的重要平台。然而&#xff0c;随着网络的普及和技术的不断发展&#xff0c;网络安全问题也日益凸显&#xff0c;其中网页爬虫对网络安全的影响不容忽视。本文将就网页爬虫对网络安全的影响进行深…

XYZ世代

Z世代&#xff0c;Gen Zers&#xff0c;Generation Z &#xff0c;一词最早出现于欧美地区&#xff0c;是美国及欧洲的流行用语&#xff0c;泛指在1995-2009年间出生的一代人&#xff0c;千禧后一代。又称网络世代、互联网世代&#xff0c;网生代&#xff0c;二次元世代&#x…

项目框架构建之3:Nuget服务器的搭建

本文是“项目框架构建”系列之3&#xff0c;本文介绍一下Nuget服务器的搭建&#xff0c;这是一项简单的工作&#xff0c;您或许早已会了。 1.打开vs2022创建Asp.net Web应用程序 框架选择.net framework4.8&#xff0c;因为nuget服务器只支持.net framework。 2.选择空项目和去…

multipath 内核接口及框架介绍

文章目录 1 云主机使用网络存储 io 流程2 multipath 介绍 1 云主机使用网络存储 io 流程 对于一个云服务环境&#xff0c;大致会有网络节点&#xff0c;存储节点&#xff0c;计算节点&#xff0c;控制节点&#xff0c;其中虚拟云主机在计算节点工作&#xff0c;而虚拟云主机&a…

Unity SVN更新提交小工具

Unity SVN更新提交小工具 前言使用说明必要前提源码参数说明 感谢 前言 Unity开发时每次都要到文件夹中操作SVN&#xff0c;做了一个小工具能够在Editor中直接操作。 使用说明 必要前提 前提是要安装好SVN&#xff0c;在文件夹右键能够看到安装的SVN 源码 using System…

UE4.27.2 网页串流

1、和Unity串流一样安装Node.js 下载地址https://nodejs.org/ 2、下载安装Epic Games启动程序https://www.unrealengine.com/zh-CN/download 3、安装UE4.7.2 4、这里就不安装像素流送演示&#xff0c;选个别的然后创建工程 5、启用PixelStreaming插件 6、设置额外启动参数&am…

uni-app 前后端调用实例 基于Springboot 详情页实现

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…