vue-amap组件呈现的效果图如何截图

我们用amap呈现了几个图层后,用户觉得效果很好,想点个按钮直接将这个画面截图下来。

首先我们用Canvas的toDataURL方法可以直接获取图像数据,但是实践发现截图后是空白的。

原因在警告中:

地图的WebGL context 的preserveDrawingBuffer为false,继续查询原因:

canvas中的getContext()方法 以及 webgl中的getContext()方法-腾讯云开发者社区-腾讯云c

参考上面的网址,知道了preserveDrawingBuffer:如果值为true,则不会清除缓冲区并保留其值,直到作者清除或覆盖。原来如此,那么我们将vue-amap组件的preserveDrawingBuffer设置为true不就可以了。

查找过程:

解决方案如下:

<el-amap :zoom="8.8" :WebGLParams="{preserveDrawingBuffer:true}" :center="center" @init="initMap">

加一个动态属性WebGLParams即可,这样,vue-amap组件也可以完全控制初始化参数了。

那么,另一种方法:直接使用AMap API初始化地图,网上案例很多,如下:

vue+高德地图截图导出图片 - 简书

还有一种截图办法:html2canvas

记录一下使用html2canvas截图高德地图出现的空白问题前言 最近做了个截图功能,使用的是html2canvas,当 - 掘金

都记录下来,以后就方便了。

相关推荐
我命由我123455 小时前
CesiumJS 笔记 - 获取容器中心点、Cartesian3 clone 方法、修改 Cartesian3 对象的高度
前端·javascript·css·前端框架·html·html5·js
Hopebearer_6 小时前
页面突然只剩 DOM?一次静态资源版本错配排查
前端·部署
抱抱宝6 小时前
Agent-study项目教程(03):手写 Mini-ReAct Agent(不依赖框架)
javascript·人工智能·gpt·react.js·prompt·agent
东风破_6 小时前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范
用户938515635077 小时前
Next.js 笔记系统(二):Redis 数据服务与侧边栏组件拆分实战
javascript·全栈
圣殿骑士-Khtangc8 小时前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
BigTopOne9 小时前
【ijkplayer】 硬解码流程
前端
kyriewen9 小时前
DeepSeek Harness开源第一天我就上手了——和Claude Code的差距比想象中大
前端·ai编程·deepseek
捡田螺的小男孩9 小时前
什么是 Skill?手把手带你写一个简单有用的 Skill!
前端·后端·程序员
IT_陈寒9 小时前
Redis集群这个坑,差点让我通宵
前端·人工智能·后端