基于vue的地图特效(飞线和标注)

这段代码的主要功能是在页面加载完成后,初始化一个 echarts 地图图表,并配置了相关的地理数据、散点数据、线条数据以及样式效果,最后在指定的 div 元素中进行展示。

需要再vue中的框架实现,不能单独直接运行。

标注

  • type: 'effectScatter' 表示这是一个带有特效的散点图。
  • coordinateSystem: 'geo' 表明其坐标系统基于地理坐标系。
  • label 配置了标签的显示格式、位置和是否显示。
  • itemStyle 设定了元素的阴影模糊度、阴影颜色和自身颜色。
  • symbolSize: 20 定义了散点的大小。
  • rippleEffect 配置了涟漪效果的相关参数。
  • data 数组中包含了几个具有名称和坐标值的城市数据,用于在地图上显示散点。

代码:

{
                    type: 'effectScatter',
                    coordinateSystem: 'geo',
                    label: {
                        formatter: '{b}',
                        position: 'right',
                        show: true
                    },
                    itemStyle: {
                        shadowBlur: 10,
                        shadowColor: '#f00',
                        color:'#f00'
                    },
                    symbolSize:20,
                     rippleEffect: {
                        brushType: 'stroke',
                        scale:3
                    },
                    data:[
                        {name:'北京',value: [116.46, 39.92]},
                        {name:'乌鲁木齐',value: [87.68, 43.77]},
                        {name:'海口',value:  [110.35, 20.02]},
                        {name:'大连',value: [121.62, 38.92]}
                        ],
                },

飞线

  • type: "lines" 表示这是一个线条类型的图表。
  • effect 配置了线条的特效显示相关参数,如是否显示、周期和符号。
  • lineStyle 设定了线条的颜色、宽度、透明度和弯曲度。
  • data 数组中包含了两组坐标数据,用于绘制线条。
 //箭头动画
                {
                    type:"lines",
                    effect:{
                        show:true,
                        period:5,
                        shmbol:'arrow',
                        symbolSize:10
                    },
                    lineStyle:{
                        color:'#C1A43C',
                        width:1,
                        opacity:1,
                        curveness:0.1,
                    },
                    data:[
                        [
                            {coord: [91.11, 29.97],},
                            {coord:[121.48, 31.22]}
                        ],
                        [
                            {coord:  [110.35, 20.02]},
                            {coord: [121.62, 38.92]}
                        ]
                    ]
                }

完整代码:

<script setup> 部分

  • 引入了 Vue 的 refreactive 和 onMounted 钩子,以及 echarts 库和中国地图数据 chinaMap 。
  • 定义了一个 ref 变量 chart ,用于引用模板中的 div 元素。
  • 在 onMounted 钩子中调用 chartInit 函数进行图表的初始化。
  • chartInit 函数中:
    • 使用 echarts.init 基于 chart.value 初始化图表实例 myChart 。
    • 注册了名为 china 的地图。
    • 配置了图表的选项 option ,包括地理信息(geo)部分的地图类型、地图数据、标签样式、区域颜色和强调效果等,以及两个系列的数据(一个是散点效果,一个是线条效果),并设置了相关的样式和数据。
    • 最后使用 setOption 方法应用配置选项显示图表。

<template> 部分

  • 定义了一个具有 ref="chart" 属性的 div 元素,用于展示图表,并设置了宽度为 100% ,高度为 600 像素。
<script setup>
import {ref,reactive, onMounted} from 'vue'
import * as echarts from 'echarts';
import chinaMap from '../../assets/json/china.json'

let chart =ref();
onMounted(()=>{
    chartInit()
})
function chartInit(){
     // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(chart.value);
      echarts.registerMap('china',chinaMap)

      // 指定图表的配置项和数据
      var option = {
            geo:{
                type:'map',
                map:'china',
                label:{
                    show:true,
                    color:'#fff',
                    fontSize:10
                },
                itemStyle:{
                    areaColor:'#4D98FB',
                    borderColor:'#fff'
                },
                zoom:1.2,
                emphasis:{
                        lable:{
                            color:'#333'
                        },
                        itemStyle:{
                            areaColor:"#1BC1AD"
                        }
                    }
            },
            series:[
                {
                    type: 'effectScatter',
                    coordinateSystem: 'geo',
                    label: {
                        formatter: '{b}',
                        position: 'right',
                        show: true
                    },
                    itemStyle: {
                        shadowBlur: 10,
                        shadowColor: '#f00',
                        color:'#f00'
                    },
                    symbolSize:20,
                     rippleEffect: {
                        brushType: 'stroke',
                        scale:3
                    },
                    data:[
                        {name:'北京',value: [116.46, 39.92]},
                        {name:'乌鲁木齐',value: [87.68, 43.77]},
                        {name:'海口',value:  [110.35, 20.02]},
                        {name:'大连',value: [121.62, 38.92]}
                        ],
                },
                //箭头动画
                {
                    type:"lines",
                    effect:{
                        show:true,
                        period:5,
                        shmbol:'arrow',
                        symbolSize:10
                    },
                    lineStyle:{
                        color:'#C1A43C',
                        width:1,
                        opacity:1,
                        curveness:0.1,
                    },
                    data:[
                        [
                            {coord: [91.11, 29.97],},
                            {coord:[121.48, 31.22]}
                        ],
                        [
                            {coord:  [110.35, 20.02]},
                            {coord: [121.62, 38.92]}
                        ]
                    ]
                }
            ]
      };

      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
}
</script>

<template>
  <div ref="chart" style="width: 100%;height:600px;"></div>
</template>

<style scoped>

</style>

 

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

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

相关文章

使用simulink进行esp32开发,进行串口收发数据需要注意的地方,为什么收发不成功

1&#xff0c;主要是因为simulink里的配置文件配置的波特率和串口接受软件配置的波特不一致导致的 2&#xff0c;主要有以下三个界面 a.配置文件 b.模型 模型直接选择使用的是那组串口就行了&#xff0c;一般情况下我们收发使用同一组就可以&#xff0c;这样收发模块填写的端…

浪潮服务器内存物理插槽位置

浪潮服务器内存物理插槽位置 如下图所示

光伏电站逆变器选型方法

前言&#xff1a;光伏逆变器是光伏发电系统两大主要部件之一&#xff0c;光伏逆变器的核心任务是跟踪光伏阵列的最大输出功率&#xff0c;并将其能量以最小的变换损耗、最佳的电能质量馈入电网。由于逆变器是串联在光伏方阵和电网之间&#xff0c;逆变器的选择将成为光伏电站能…

Socks5代理为何比HTTP代理快?

在网络世界中&#xff0c;代理服务器扮演着重要的角色&#xff0c;它们能够帮助我们访问被限制的网站、提高网络安全性以及优化网络性能。其中&#xff0c;Socks5代理和HTTP代理是两种常见的代理类型。然而&#xff0c;很多用户发现&#xff0c;相较于HTTP代理&#xff0c;Sock…

探索 Electron:窗口菜单以及生命周期和对话框讲解

Electron是一个开源的桌面应用程序开发框架&#xff0c;它允许开发者使用Web技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;构建跨平台的桌面应用程序&#xff0c;它的出现极大地简化了桌面应用程序的开发流程&#xff0c;让更多的开发者能够利用已有的 Web 开发技能…

小程序问题

1.获取节点 wx.createSelectorQuery() wx.createSelectorQuery().in(this) //组件中加in(this)&#xff0c;不然获取不到 2.使用实例 wx.createSelectorQuery().in(this).select(#share).fields({node: true,size: true}).exec(async (res) > {const canvas res[0].node;…

【栈和队列OJ题】

栈和队列OJ题 文章目录 栈和队列OJ题1. 用队列实现栈2. 用栈实现队列3. 括号匹配问题4. 循环队列 1. 用队列实现栈 OJ链接&#xff1a;225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09; 好的&#xff0c;我们一起来看一下题目&#xff0c;题目是这样说的 思路&…

【斯坦福因果推断课程全集】2_无混淆和倾向分1

目录 Beyond a single randomized controlled trial Aggregating difference-in-means estimators Continuous X and the propensity score 随机试验的一个最简单的扩展是无约束下的干预效果估计。从定性上讲&#xff0c;当我们想估计一种并非随机的治疗效果&#xff0c;但一…

PyTorch | 加速模型训练的妙招

引言 提升机器学习模型的训练速度是每位机器学习工程师的共同追求。训练速度的提升意味着实验周期的缩短&#xff0c;进而加速产品的迭代过程。同时&#xff0c;这也表示在进行单一模型训练时&#xff0c;所需的资源将会减少。简而言之&#xff0c;我们追求的是效率。 熟悉 PyT…

mybatis的拦截器

文章目录 第三个是参数拦截器第四个是结果集拦截器mybatis拦截器-笔试题1.笔试题 JDBC的执行流程3.执行sql语句,返回执行结果 mybatis的四种拦截器 第一个是执行拦截器: Executor&#xff08;执行器拦截器&#xff09;&#xff1a; 用途&#xff1a;拦截MyBatis执行器方法的…

AI版Siri要明年见,研究表明ChatGPT暂无法取代程序员,Kimi推出浏览器插件

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 根据彭博社记者马克古尔曼的最新消息&#xff0c;苹果公司今年不会推出全新的Apple Intelligence驱动的Siri&#xff0c;该公司计划在明年1月开始测试&#xff0c;并在iOS 18.4中才推出正式版本。 此前…

未来工业革命:区块链在工业4.0中的角色与应用

随着科技的迅猛发展&#xff0c;人类社会正在逐步迈向工业4.0时代。在这一新时代的背景下&#xff0c;区块链技术作为一种创新性的分布式账本技术&#xff0c;正逐步在工业领域展示其独特的价值和潜力。本文将深入探讨区块链在工业4.0中的角色与应用&#xff0c;分析其对工业生…

windows安装Docker Desktop及国内镜像

简介 Docker 是一个开源的应用容器引擎&#xff0c;它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。通过Docker工具&#xff0c;简化了应用的部署、配置和管理过程&#xff0c;提高…

dataX入门

下载dataX https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz 然后 下载后解压至本地某个目录&#xff0c;进入bin目录&#xff0c;即可运行同步作业&#xff1a; $ cd {YOUR_DATAX_HOME}/bin $ python datax.py {YOUR_JOB.json} 要求你有python…

FPGA上板项目(一)——点灯熟悉完整开发流程、ILA在线调试

目录 创建工程创建 HDL 代码仿真添加管脚约束添加时序约束生成 bit 文件下载ILA 在线调试 创建工程 型号选择&#xff1a;以 AXU9EG 开发板为例&#xff0c;芯片选择 xczu9eg-ffvb1156-2-i 创建 HDL 代码 注意&#xff1a;由于输入时钟为 200MHz 的差分时钟&#xff0c;因此…

【Python】已解决:ModuleNotFoundError: No module named ‘nltk’

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;ModuleNotFoundError: No module named ‘nltk’ 一、分析问题背景 在使用Python进行自然语言处理或文本分析时&#xff0c;我们经常会用到各种库来辅助我们的工…

【ACM 独立出版,高录用EI稳检索】2024年大数据与数字化管理国际学术会议 (ICBDDM 2024,8月16-18)

2024年大数据与数字化管理国际学术会议 (ICBDDM 2024)&#xff0c;将于2024年8月16-18日在中国上海召开。 “大数据与数字化管理”作为会议主题&#xff0c;旨在聚焦这一跨学科领域中最新的理论研究、技术进展、实践案例和未来趋势。本主题探讨的研究方向涵盖了大数据的收集、…

GD32F303RET6读取SGM58031电压值

1、SGM58031芯片详解 &#xff08;1&#xff09;SGM58031是一款低功耗&#xff0c;16位精度&#xff0c;delta-sigma (ΔΣ)模数转换器(ADC)。它从3V到5.5V供电。 &#xff08;2&#xff09;SGM58031包含一个片上参考和振荡器。它有一个I2C兼容接口&#xff0c;可以选择四个I2…

15、电科院FTU检测标准学习笔记-基本性能

作者简介&#xff1a; 本人从事电力系统多年&#xff0c;岗位包含研发&#xff0c;测试&#xff0c;工程等&#xff0c;具有丰富的经验 在配电自动化验收测试以及电科院测试中&#xff0c;本人全程参与&#xff0c;积累了不少现场的经验 ———————————————————…

Nginx七层(应用层)反向代理:SCGI代理scgi_pass篇

Nginx七层&#xff08;应用层&#xff09;反向代理 SCGI代理scgi_pass篇 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this art…