vue3中openlayers绘制多个Overlay

news2024/9/21 14:36:25

项目需求是要在地图上显示多个div,之前使用Overlay绘制单个显示正常,结果绘制多个的时候就显示一个,不过也解决了,下面我就把核心代码贴一下,如果有什么问题可以留言,我就是提供一个思路。
效果图
在这里插入图片描述
上面图片的信号塔是动态显示的,一般可以使用动态图片,但是我觉得动态图片达不到我想要的效果,所以改成了svg加css做出的动态效果图。

  <span v-for="(item, index) in locationList" :key="index">
    <img
    class="css_animation"
    ref="animationdiv"
    src="../../assets/Signaltower.svg"
    alt=""
    srcset=""
    :id="index"
   
  />
  </span>
  <style lang="less" scoped>
  .css_animation {
  height: 30px;
  width: 30px;
  display: none;
  animation: myfirst 3s ease-in-out;
  animation-iteration-count: infinite;
}

@keyframes myfirst {
  0%,
  100% {
    opacity: 0.5;
    // transform: translateX(-100%); /* 从左侧开始隐藏 */
  }

  50% {
    opacity: 1;
    // transform: translateX(0); /* 在中间状态下居中显示 */
  }
}
    </style>

忽略我命名的不规范,这只是我模拟的假数据

<script setup>
const aaa=ref({ "payload": {
    "lat": 43.887798338,
    "lon": 125.3587389704,
    "radiu": 4000,
    "deviceId": null,
    "locationList": [
      {
        "lat": 43.887798338,
        "lng": 125.3587389704
      },
      {
        "lat": 43.877798338,
        "lng": 125.3587389704
      },
      {
        "lat": 43.879798338,
        "lng": 125.3587389704
      }
    ]
  }
})
const ysjdequipmentlist=(timeToNextHour)=>{
locationList.value=aaa.value.payload.locationList
   aaa.value.payload.locationList.forEach((val,i) => {
          nextTick().then(() => {
        
            initImage(
                animationdiv.value[i],
                {lat: val.lat,lng:val.lng},
                aaa.value.payload.radiu,
                timeToNextHour,
                isdeviceIdShow.value
            ); 
          });            
        
        });
       
    } 
</script>

地图核心代码

 /**
     * 创建地图中心点 
     * @point_div 信号塔容器
     * @value 经纬度
     * @range 半径
     * @timeToNextHour 如果有时间传入说明要更新了
     * @deviceIdEqit 设备id
     */
  
    function initImage(point_div, value, range, timeToNextHour,deviceIdEqit) {   
        if (point_div) {
            // 半径为0不渲染信号塔和圈
            if (range != '0') {
                point_div.style.display = 'block'
                let  point_overlay = new Overlay({
                    name:'Signaltowerlayer',
                    element: point_div,
                    positioning: "center-center",
                    position: [value.lng, value.lat],
                    id:'Signaltowerlayer'
                });
               
                imap.addOverlay(point_overlay);           
                console.log(imap.getOverlays().getArray(),'添加信号塔');
            }else if(range == '0'){
                var feature = new Feature({
                    geometry: new Point( [value.lng, value.lat]),
                });
                let iconStyle = new Style({
                    image: new Icon({
                        //图片地址
                        src: isImageKong,
                        //长宽缩放比
                        scale: [0.2, 0.2],
                        //锚点位置
                        anchor: [0.2, 0.2],
                        //给图片着色
                        // color: 'rgba(255, 0, 0,0.5)',
                        //旋转弧度
                        rotation: 0
                    }),
                });
                feature.setStyle(iconStyle);
                var layers = imap.getLayers();
                layers.forEach(element => {
                    if (element?.get('name') == 'Circlelayers') {
                        element.getSource().addFeature(feature);
                    }
                  });
            }
            imap.getView().setCenter([value.lng, value.lat]);//定位
          
        }
    }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

昂科烧录器支持Fortior Tech峰岹科技的电机驱动专用芯片FU6812V

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中Fortior Tech峰岹科技的高性能电机驱动专用芯片FU6812V已经被昂科的通用烧录平台AP8000所支持。 FU6812V是一款集成电机控制引擎(ME)和8051内核的高性能电机驱动专用芯片&…

Nginx性能调优

为什么是Nginx而不是apache&#xff1f; 轻量级&#xff0c;同样起web服务器&#xff0c;比apache占用更少的内存资源静态处理&#xff0c;Nginx静态处理性能比apache高3倍以上抗并发&#xff0c;Nginx处理请求时异步非阻塞的&#xff0c;而apache则是阻塞型的&#xff0c;在高…

代替STM32L010 STM32G030 CMS8S6990 STM8S003的芯片CW32L010

CW32L010作为一款可以代替STM32L010 STM32G030 CMS8S6990 STM8S003部分型号可以兼容的芯片&#xff0c;其功能上能够和它们相匹配&#xff0c;并且在功能更优秀&#xff0c;其芯片特点在于超低功耗&#xff0c;高精度ADC和主频最高可达到48MHz。 CW32L010是基于eFlash的单芯片低…

AutosarMCAL开发——基于EB Gpt驱动

目录 1.Gpt原理2.EB配置以及接口应用2.1 EB配置2.2 接口应用 3.总结 1.Gpt原理 autosar GPT模块&#xff08;General Purpose Timer&#xff0c;通用定时器&#xff09;主要用于汽车ECU中的时间测量、计数和产生定时中断。它支持单次性和周期性定时器&#xff0c;可以在达到预…

结合Scrapy和无限住宅代理进行大规模的数据抓取方案

在大规模数据抓取的过程中&#xff0c;如何高效、安全地获取数据是一个关键问题。Scrapy作为一种强大的爬虫框架&#xff0c;能够帮助开发者快速抓取和处理网站数据。而无限住宅代理则提供了全球范围内的IP地址&#xff0c;极大地提升了数据抓取的效率和匿名性。本文将探讨如何…

你还不知道如何利用AI提升学习效率吗?

前言 随着新学期的到来&#xff0c;校园里又恢复了往日的热闹。书声琅琅&#xff0c;青春洋溢&#xff0c;大学生们怀揣着梦想与希望&#xff0c;踏入了新的学习阶段。然而&#xff0c;在这个信息爆炸的时代&#xff0c;传统的学习方式是否还能满足我们的需求呢&#xff1f;答…

在 sql server 数据库中,查询数据库的占用的空间大小和数据库中各表的占用大小

1、如果只是查询数据库的大小的话&#xff0c;直接使用以下语句即可&#xff1a; EXEC sp_spaceused2、为了保证查询结果的实时性&#xff0c;推荐使用下面这个语句来确保统计数据是最新的&#xff1a; EXEC sp_spaceused updateusage NTRUE;执行完毕后结果是两个表&#xf…

Android终端如何快速接入GB28181平台实现实时音视频回传

技术背景 GB28181是由中国国家标准委员会发布的基于IP网络的安防视频监控标准。Android平台GB28181设备对接模块&#xff0c;主要涉及到视频监控领域&#xff0c;可实现不具备国标音视频能力的 Android终端&#xff0c;通过平台注册接入到现有的GB/T28181—2016服务&#xff0…

Ubuntu 下载/安装

官网 Enterprise Open Source and Linux | UbuntuUbuntu is the modern, open source operating system on Linux for the enterprise server, desktop, cloud, and IoT.https://ubuntu.com/ 下载 安装

代码签名证书有什么作用?

代码签名证书在软件开发和分发过程中具有多重重要作用&#xff0c;主要包括以下几个方面&#xff1a; 验证身份和来源&#xff1a;代码签名证书通过数字签名技术&#xff0c;验证软件发布者的身份&#xff0c;确保软件确实来自其声称的开发者或组织。这有助于用户识别并信任软件…

小试牛刀,开发你的第一个Java程序 -- HelloWorld

&#x1f680; 个人简介&#xff1a;某大型国企资深软件开发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主&#xff0c;华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f9…

C语言09--进程的内存镜像

C进程内存布局 任何一个程序&#xff0c;正常运行都需要内存资源&#xff0c;用来存放诸如变量、常量、函数代码等等。这些不同的内容&#xff0c;所存储的内存区域是不同的&#xff0c;且不同的区域有不同的特性。因此我们需要研究C语言的内存布局&#xff0c;逐个了解不同内存…

SQLynx如何提高企业数据库安全?

企业数据库的安全性直接关系到企业的运营稳定、客户隐私保护以及市场竞争力。SQLynx凭借技术优势和全面的防护策略&#xff0c;致力于为企业数据库安全提供了强有力的保障。 1. 多数据源支持 SQLynx企业版支持多种主流数据源&#xff0c;包括Oracle、PostgreSQL、MySQL、Mari…

无痕去除视频logo,视频去水印

视频素材带有logo&#xff0c;是我们在剪辑中经常会遇到的问题。那么&#xff0c;怎么快速去掉视频中的logo呢&#xff1f; 随着视频内容的不断丰富和多样化&#xff0c;很多人都开始学习视频剪辑技巧&#xff0c;其中一个重要的问题就是如何去掉视频中的logo。 我们一般在网上…

十一 面向对象技术(考点篇)试题

A &#xff1b;D&#xff0c;D。实际答案&#xff1a;C&#xff1b;D&#xff0c;D 考的很偏了。UML 2.0基础结构的设计目标是定义一个元语言的核心 UML 2.0 【InfrastructureLibrary】,通过对此核心的复用&#xff0c;除了可以定义一个自展的UML元模型&#xff0c;也可以 Infr…

OpenGauss 高性能高安全高可靠的企业级开源关系型数据库

openGauss | openGauss openGauss: 一款高性能、高安全、高可靠的企业级开源关系型数据库。 技术背景 openGauss内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。 自 2020 年 6 月开源以来,openGauss 一直围绕高性能、高可用、高智能、…

企业展厅设计关键转折点何在?如何确保展厅顺利实施?

随着科技的进步和市场竞争的加剧&#xff0c;各企业越来越注重自身的形象宣传和品牌推广。近期&#xff0c;数字多媒体技术在内容展览中所引起的广泛关注和讨论&#xff0c;让不少企业意识到&#xff0c;建设一个集创新、互动、科技于一体的企业多媒体展厅&#xff0c;是当下吸…

『功能项目』骑乘坐骑【22】

我们打开上一篇21项目优化的项目&#xff0c; 本章要做的事情是在召唤坐骑后的指定距离内点击骑乘即可乘坐坐骑 首先进入坐骑熊的预制体空间&#xff0c;将主角模型拖拽至坐骑身上并删除所有组件及标签 将子物体Player拖拽至其子级&#xff0c;父类删掉 将其Player隐藏 创建坐…

AI在台球助教系统中的应用与优化

随着科技的发展&#xff0c;AI技术在各个领域的应用越来越广泛。特别是在体育培训领域&#xff0c;AI的应用为传统教学方式带来了革命性的变化。对于热爱台球运动的朋友来说&#xff0c;台球助教系统无疑是一个令人兴奋的新工具。它利用先进的AI技术&#xff0c;为台球爱好者提…

vscode任务配置之tasks.json

目录 用途说明 用途1&#xff1a;配置编译任务 1.生成task.json文件 2.编辑task.json文件 3.运行任务 用途2&#xff1a;给一个脚本文件配置任务 1.生成task.json文件 2.编辑task.json文件 3.运行任务 用途说明 在VS Code中配置任务主要涉及到task.json文件的编辑&am…