You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下如何成功将Leaflet地图保存为PNG格式图片

问题根源

libproviders.so加载报错、导出空白PNG的核心原因是PhantomJS已停止维护超过6年,完全不兼容Ubuntu 22.04默认搭载的OpenSSL 3.0系统库。目前能找到的PhantomJS 2.1.1、1.9.8均为2018年之前发布的旧版本,不存在适配Ubuntu 22.04的可用开发版,无需在PhantomJS安装、版本切换上继续耗费时间。
以下两个方案均可保留你需要的CartoDB暗色底图效果,全程不依赖Google服务,可直接导出符合要求的PNG文件。


方案1:保留现有Leaflet代码,替换截图工具(改动量最小)

将依赖PhantomJS的webshot包替换为基于Chromium无头渲染的webshot2包即可,现有Leaflet绘图逻辑无需任何修改,不会出现兼容报错、底图加载不全、导出空白的问题。

  1. 先安装系统层依赖:
sudo apt update && sudo apt install -y chromium-browser
  1. 在R环境中安装webshot2:
install.packages("webshot2")
  1. 替换原有导出逻辑,其余代码保持原样:
library(leaflet); library(htmlwidgets); library(webshot2)

# 原有Leaflet绘图代码无需改动
m <- leaflet() %>% 
  addTiles("https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png") %>%
  setView(-.12, 51.50, zoom=13)
m$x$options <- append(m$x$options, list("zoomControl" = FALSE))
m <- m %>%
  addCircleMarkers(c(-.11, -.12, -.13), c(51.48, 51.52, 51.50),
                   radius=1, color="red")

# 替换原有的webshot调用
saveWidget(m, "temp.html", selfcontained = TRUE)
webshot2("temp.html", file = "Rplot.png", cliprect = "viewport", delay = 2)

该方案导出的渲染效果和Leaflet交互预览效果完全一致,delay=2参数是给底图瓦片预留加载时间,避免出现底图缺失。


方案2:原生静态地图绘制(稳定性最高,无浏览器依赖)

如果不需要保留HTML交互能力,可以直接用R的静态绘图体系实现完全相同的视觉效果,全程不涉及HTML渲染、无头浏览器类依赖,不会出现动态资源加载超时导致的空白问题,底图和你当前使用的CartoDB暗色底图完全同源。
实现代码如下,依赖ggplot2、ggspatial、sf三个包:

# 安装所需依赖
install.packages(c("ggplot2", "ggspatial", "sf"))

library(ggplot2)
library(ggspatial)
library(sf)

# 整理点位数据
point_df <- data.frame(
  lon = c(-.11, -.12, -.13),
  lat = c(51.48, 51.52, 51.50)
) %>% 
  st_as_sf(coords = c("lon", "lat"), crs = 4326)

# 绘制地图
ggplot() +
  # 加载同源CartoDB暗色底图
  annotation_map_tile(type = "cartodark", zoom = 13) +
  # 添加红色标记点
  geom_sf(data = point_df, color = "red", size = 1) +
  # 匹配原有地图显示范围
  coord_sf(xlim = c(-0.135, -0.105), ylim = c(51.475, 51.525)) +
  # 隐藏冗余坐标轴、控件,保持简洁效果
  theme_void()

# 直接导出PNG,可自定义分辨率、尺寸
ggsave("Rplot.png", width = 8, height = 6, dpi = 300)

该方案导出速度更快,结果可复现性更强,适合学术绘图场景。


补充说明

两个方案使用的均为CartoDB官方提供的暗色底图,深色视觉效果完全适配夜间犯罪研究的展示主题,未调用任何Google服务接口。

内容的提问来源于stack exchange,提问作者jay.sf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 16:33:28