经纬志
首页 / MapLibre / 使用示例

地图截图

点一下按钮,把当前视角连同图层导出成 PNG,右侧立即出现缩略图与下载链接。 关键开关只有一个:preserveDrawingBuffer。

MapLibre GL JS 4.x · 更新 2026-10-28
源码与运行效果
运行效果

说明

WebGL 画布默认在每帧结束后丢弃绘制内容,直接读取只能得到透明空白。 创建地图时设置 preserveDrawingBuffer: true,读像素才是可靠的。

导出的是设备像素尺寸,高分屏上会比容器大一圈。 需要固定 1200×800 时,给 toDataURL 的结果再套一层离屏 canvas 缩放。

配置取值说明
preserveDrawingBuffertrue截图的前提,略增显存占用
getCanvas()canvas取到底层画布
toDataURL('image/png')data URL可直接用于 img 与下载
a.download文件名浏览器直接保存,无需后端

地图上的 DOM 元素(标记、弹窗、控件)不在 WebGL 画布内,截图不会包含它们。 需要一起导出时,用 html2canvas 之类的库叠一层, 或把标记改成 symbol 图层。

只在截图功能确实需要时开启这个选项。长期开启会让每帧多保留一份缓冲, 低端设备上的帧率与内存都有可见的代价。