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

191.Vue3 + OpenLayers 实战:可控化版权信息(Attribution)详解与完整示例

一、效果目标我们要实现以下效果✅ 自定义版权内容HTML✅ 内置版权右下角可折叠✅ 外部版权自定义位置展示✅ 自定义按钮样式✅ 控制是否折叠 二、为什么要关注 Attribution在使用 OSM、天地图、ArcGIS 等地图服务时版权信息是必须展示的否则可能存在法律风险。OpenLayers 默认会帮我们处理版权信息但❌ 默认样式不可控❌ 位置固定右下角❌ UI 不符合项目设计 所以我们需要“可控化版权信息”⚙️ 三、核心代码实现Vue3 Composition API!-- * Author: 彭麒 * Date: 2025/4/8 * Email: 1062470959qq.com * Description: 此源码版权归吉檀迦俐所有可供学习和借鉴或商用。 -- template div classcontainer div classw-full flex justify-center flex-wrap div classfont-bold text-[24px] vue3 openlayers可控化版权信息学习Attribution各种API示例展示 /div /div div refmapRef classmap-x/div div refoutAttrRef/div /div /template script setup import { ref, onMounted } from vue import ol/ol.css import { Map, View } from ol import Tile from ol/layer/Tile import OSM from ol/source/OSM import { Attribution, defaults as defaultControls } from ol/control // DOM引用 const mapRef ref(null) const outAttrRef ref(null) // 地图实例 let map null const initMap () { const copyrightInfo a hrefhttps://pengqi.blog.csdn.net/ target_blankcopy; 我的个性化版权信息/a // 内部版权控件右下角 const inAttribution new Attribution({ collapsible: true, collapsed: true, label: C, tipLabel: 版权信息, collapseLabel: }) // 外部版权控件自定义容器 const outAttribution new Attribution({ collapsible: false, target: outAttrRef.value, className: myCustomClass, expandClassName: myExpandClass }) map new Map({ target: mapRef.value, layers: [ new Tile({ source: new OSM({ attributions: copyrightInfo }) }) ], view: new View({ projection: EPSG:4326, center: [114.064839, 22.548857], zoom: 4 }), controls: defaultControls({ attribution: false }).extend([ inAttribution, outAttribution ]) }) } onMounted(() { initMap() }) /script style scoped .container { width: 840px; height: 580px; margin: 0 auto; border: 1px solid #42B983; } .map-x { width: 800px; height: 400px; margin: 0 auto; border: 1px solid #42B983; } .myCustomClass { width: 100%; } .myExpandClass .ol-control button { background: #0000ff !important; } /style 四、Attribution 核心 API 详解1️⃣ collapsible是否可折叠collapsible: truetrue可以折叠默认false始终展开2️⃣ collapsed初始是否折叠collapsed: truetrue默认收起false默认展开3️⃣ label折叠按钮文字label: C 你可以改成图标、文字比如“©”“版权”自定义 SVG4️⃣ tipLabel鼠标提示tipLabel: 版权信息 鼠标 hover 提示内容5️⃣ collapseLabel展开后按钮collapseLabel: 控制“收起按钮”的内容6️⃣ target重点target: outAttrRef.value 作用把版权信息挂载到外部 DOM实现 UI 完全自定义 五、内置 vs 外置 Attribution类型特点内置默认右下角适合快速使用外置完全自定义位置推荐项目使用 本文实现了双 Attribution 共存controls: defaultControls({ attribution: false }).extend([ inAttribution, outAttribution ]) 六、样式自定义技巧.myExpandClass .ol-control button { background: #0000ff !important; }你可以做到改颜色改按钮形状改位置absolute布局改字体 七、进阶玩法项目必备✅ 1. 动态切换版权多底图source.setAttributions(新的版权信息) 用于切换 OSM / 天地图 / 卫星图无人机影像图✅ 2. 完全 Vue 化控制 不用 OpenLayers UI自己写弹窗tooltipfooter✅ 3. 与业务结合无人机巡检你可以这样用飞行轨迹 → 显示数据来源版权不同任务 → 显示不同版权私有地图 → 加公司 logo 声明⚠️ 八、常见坑❌ 1. target 为空target: outAttrRef.value 必须在onMounted后使用❌ 2. 默认 Attribution 未关闭defaultControls({ attribution: false }) 否则会出现重复版权❌ 3. HTML 未生效 attribution 支持 HTML但要注意字符串格式正确标签闭合 九、总结通过本文你已经掌握✅ Attribution 的所有核心 API✅ 内置 外置双模式实现✅ Vue3 Composition 写法✅ 高级 UI 控制方式✅ 项目实战扩展思路 最后一句在 WebGIS 项目里细节决定专业度。 Attribution 虽小但体现的是你对“工程规范 用户体验”的理解。如果你想继续进阶 我可以帮你升级这套代码到 多地图源切换天地图 / 高德 / OSM 无人机航线 点位展示 海量点位优化聚合 / WebGL 企业级 GIS 架构直接说一句“升级GIS项目版”

相关文章:

191.Vue3 + OpenLayers 实战:可控化版权信息(Attribution)详解与完整示例

🧩 一、效果目标我们要实现以下效果:✅ 自定义版权内容(HTML)✅ 内置版权(右下角,可折叠)✅ 外部版权(自定义位置展示)✅ 自定义按钮样式✅ 控制是否折叠🧠 二…...

CCF-GESP 等级考试 2026年3月认证C++一级真题解析

2026年3月真题 一、单选题(每题2分,共30分)正确答案:B 考察知识点:计算机相关知识 解析:输入设备是从外界获取信息交付计算机进行处理,重力传感器检测重心,遥控器接受指令&#xff0…...

UV胶粘度硬度伸长率详解 如何选对UV胶

工程师必读:UV胶性能参数解读——粘度、硬度、伸长率意味着什么?UV胶(光固化胶粘剂)因其秒级固化、高透明度、低收缩率等优势,已成为电子、光学、医疗器械、精密组装等领域工程师的首选材料。但要选对UV胶,…...

全球六维力传感器行业发展洞察:高速增长下的国产突围与市场机遇

QYResearch(恒州博智)作为全球领先的专业咨询机构,长期深耕各行业细分市场调研,尤其聚焦高端制造领域存在“卡脖子”风险的高科技赛道。依托全球化调研网络与深度数据挖掘能力,机构重点追踪国内外标杆企业,…...

YTM32

记录一个很愚蠢的小bug在用云途系列MCU时,我喜欢先用串口打印功能,但是多次卡在PRINTF里,于是花了很多时间在串口配置上。解决后没有当回事,结果就是今天再次卡死在这个问题,又浪费一个多小时的时间在这个愚蠢的bug上&…...

颠覆“回老家更轻松”,计算机会,收入,生活成本,颠覆安逸幻想,输出长期发展路线。

颠覆"回老家更轻松" - 长期发展路线规划系统一、实际应用场景描述场景:李明,28岁,北京某互联网大厂高级工程师,年薪45万。面对北京的高房价、996工作制和通勤压力,他经常被家人劝说"回老家发展"。…...

高精度毫米级室内定位:机器人导航的“最后一厘米”难题如何破解

在机器人技术加速落地的今天,一个看似简单的问题始终困扰着行业:机器人到底能不能知道自己“精确”在哪?这个问题听起来有些哲学,但在工程实践中却极为现实。一台AGV在仓库中穿梭数百米后,能否准确停在货架前5毫米的位…...

大模型理论学习之基本概念理解

大模型,agentagentic工具调用MCP向量模型RAG大语言模型(large language model):理解自然语言,生成自然语言。多模态大模型:不仅可以处理文本,同时可以处理图片,音频,视频…...

华为 HCIA-Datacom考试版本升级 V2.0!2026年7月起考新版

华为认证新动态! 2025年12月31日,华为官方已在中国区正式发布 HCIA-Datacom V2.0(中文版)。 此次更新不仅是版本迭代,更是对数通领域入门级人才能力标准的一次全面重塑,标志着认证内容向 “实战化、智能化”…...

基于DSP28335主控的直流有刷电机闭环控制系统:转速PID调控与上位机可视化操作指南

直流有刷电机闭环控制 主控dsp28335,直流有刷电机,采用ab编码器,进行速度闭环。 有转速指令规划处理,速度环pid控制,eqep位置解算、转速解算,可以通过上位机控制电机正反转,发送指令等。 可以直…...

最新 AI 论文盘点(2026-03-18):6 篇新作看记忆、长上下文、医疗评测、机器人策略与世界模型

最新 AI 论文盘点(2026-03-18):6 篇新作看记忆、长上下文、医疗评测、机器人策略与世界模型今天这批新论文里,我觉得有几条线特别值得看。一条是 LLM / Agent 的记忆与长上下文,讨论怎么把“记住信息”和“真正用好上下…...

2023升级版-Spark+ClickHouse实战企业级数据仓库,进军大厂必备

大数据技术升级:2023 版 Spark ClickHouse 重塑企业级数据仓库架构在数据爆炸式增长的今天,企业级数据仓库(Data Warehouse)已不再仅仅是数据的存储库,而是驱动商业智能、实时决策和人工智能模型的核心引擎。传统的“…...

拒绝做“表哥表姐”!OpenClaw 接入飞书全攻略:靠这个“向量引擎”中转站,我让全公司的 AI 卷起来了!

一、 2026 职场真相:你是在用 AI,还是被 AI 玩? 2026 年了,如果你的飞书还只是用来打卡和发表情包,那真是暴殄天物。 现在的职场现状是: 老板在群里丢了一份 50 页的 PDF 调研报告,让你 10 分…...

FPGA SDIO模式读写SD卡程序功能说明

FPGA以SDIO模式读写SD卡源码,可移植到任何FPGA中。 在SDIO模式下,SD卡读写速率50Mbps以上。 文件里包含tb和说明文档,已经下板验证通过。一、程序核心功能概述 本程序实现了FPGA通过SDIO模式对SD卡进行高速读写操作的完整解决方案&#xff0c…...

售后管理不再“掉链子”:一套系统如何打通从报修到结算的全链路?

对于制造、家电、医疗器械、智能硬件等拥有实体产品的企业而言,售后服务是品牌口碑的生命线,却也是管理难度最高、成本最不可控的环节之一。传统的售后管理常常“掉链子”:客户报修难:只能打电话,描述不清产品型号&…...

Tetramethylrhodamine,四甲基罗丹明甲酯,115532-49-5:

基础试剂介绍英文名称:TMRM,Tetramethylrhodamine,Tetramethylrhodamine methyl ester中文名称:四甲基罗丹明甲酯CAS 号:115532-49-5分子式:C25H25N2O3分子量:401.49纯度:>95%外观性状:固体激…...

Gemini Embedding 2:五大模态统归一境,跨模态 Agent 的最强“大脑”!

本文内容来源于谷歌官方,由谷歌云钻石合作伙伴、谷歌地图一级代理商 CloudAce 深圳云一进行翻译发布。导语:Google 正式发布了基于 Gemini 架构构建的首款全多模态嵌入模型 Gemini Embedding 2 的公开预览版 。该模型打破了传统文本嵌入的局限&#xff0…...

筑牢防线:SQL注入与XSS攻击的防御实战指南

筑牢防线:SQL注入与XSS攻击的防御实战指南在Web安全的广阔战场上,**SQL注入(SQL Injection)和跨站脚本攻击(XSS, Cross-Site Scripting)**长期占据OWASP Top 10漏洞榜单的前列。尽管它们已是“老牌”漏洞&a…...

微信接口调不通 500 未知错误

再看下公钥 和证书 配置对了吗...

CLM陆面过程模式详细应用教程

NCAR陆面模式CLM (Community Land Model)是地球系统模式CESM (Community Earth System Model)中的陆面过程模式分量,是在结合了BATS、LSM和IAP94等众多陆面模式的优点后,加入水文过程而开发出的综合性陆面模式,是目前国际上发展最为完善且得到…...

Claude Code 实战一:从零开发电商小程序(全流程)

前言 有了入门基础,我们来看一个完整的实战案例——使用 Claude Code 开发一个具备支付功能的电商小程序。这个案例整合了 Figma 设计稿还原、后端开发、数据库管理和微信支付集成,是一次典型的“全栈 AI 驱动开发”实践。 🎯 项目概况 项目目…...

高分子功能母粒技术迭代,福尔蒂新材料的研发方向展望

在高分子材料改性与精细化加工领域,功能母粒一直是连接基础树脂与高端终端制品的核心中间体,堪称塑料产业链的“功能芯片”。历经数十年发展,功能母粒早已跳出单一着色的基础定位,朝着高性能化、绿色化、智能化、定制化方向全面迭…...

影视仓2026最新接口配置合集,tvbox4K高清源,值得收藏!

🔥TVBox影视仓:免费看遍全网影视的神器! 安卓/电视端通用 | 无广告 | 4K超清 📺什么是TVBox影视仓? TVBox影视仓是一款 免费、无广告、无需会员 的影视聚合神器!专为安卓/电视端打造,整合了全网…...

人力资源战略与业务战略对齐的重要性及正确实施方法

众所周知,人力资源战略必须与业务需求相契合。我们从 1200 多家组织收集的数据显示,人力资源领导者深知这一需求。人力资源领导者花费大量时间进行对齐、分解目标、构建计分卡以及定义相关 KPI 以展示影响力。 但问题往往出在翻译转换环节。一旦完成转换…...

卫星姿态轨道控制Simulink仿真:一个基于资料的学习实践

卫星姿态轨道控制simulink仿真/姿轨控 卫星姿轨控仿真,基于simulink 自己在国外文献和资料基础上修改 资料包含源程序和英文版报告,是学习卫星姿轨控和simulink仿真的好资料一、引言随着航天技术的飞速发展,卫星姿态轨道控制(姿轨…...

指纹浏览器为什么要自建IP检测?基于IP数据云离线库的架构实践

一、为什么指纹浏览器必须自建IP检测? 2026年,亚马逊、Temu等平台的风控已从“指纹识别”升级到“IP信誉优先”。一个被标记为“数据中心”或“高代理风险”的IP,即使浏览器指纹伪装得再完美,也会在登录瞬间被判定为“非自然人操…...

‌VR驾驶模拟器|智能座舱人机交互实验设备

‌VR驾驶模拟器或‌智能座舱人机交互实验设备‌是高校科研、车企研发及智慧交通测试中的核心仿真平台,具备高精度环境模拟、多模态数据采集和可扩展接口等特性,它不仅能复现真实路况的每一个细节,更能精准捕捉驾驶员的每一次决策,…...

2026个人简历模板免费下载(Word格式可编辑)

个人付费购买的简历资源,有500多份简历模板,word格式可编辑无水印稍微改改就能自己用免费分享给大家,下载链接:https://pan.quark.cn/s/0ffb0b322532...

旧手机不要扔!用 spacedesk 一分钟变电脑副屏(教学视频+软件打包)

简介说明 旧手机别闲置吃灰!spacedesk 帮你轻松盘活,它是一款轻量实用的跨设备屏幕扩展工具,核心就是让旧手机、平板变身电脑副屏,无需额外硬件,一分钟就能上手,适配办公、设计、娱乐等多场景需求。 它操作…...

【旋转框】基于YOLO26深度学习的无人机视角车辆检测系统【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...