【问题标题】:How to save Leaflet in R map as png or jpg file?如何将 R 地图中的传单保存为 png 或 jpg 文件?
【发布时间】:2015-09-28 23:23:08
【问题描述】:

我正在使用 Leaflet 包在 R 中创建地图。它运行良好。我可以用简单的Export在R中导出地图,但是我需要从R中的脚本中导出地图。我的简单代码是:

png("test_png.png")
(m <- leaflet() %>% addTiles())
dev.off()

它可以工作,但是...输出的 png 文件是白色的空白。

【问题讨论】:

  • Thanx,但我正在尝试“打印”,但它不起作用。效果是一样的:白色图像。
  • 这并不容易做到的原因是:Leaflet 是一个 JavaScript 库,用于为 Web 构建交互式地图。如果你想要一个静态地图,有很多制作它们的 R 包。当你强迫它时,你几乎总是压倒某人经过深思熟虑的设计选择,并且通常最终会得到一个低于标准的产品。为工作选择合适的工具。

标签: r leaflet


【解决方案1】:

这个非常好的解决方法出现了in response to a question 稍后在 SO 上问。请注意,您需要安装 PhantomJS 才能使以下代码正常工作。

## install 'webshot' package
library(devtools)
install_github("wch/webshot")

## load packages
library(leaflet)
library(htmlwidgets)
library(webshot)

## create map
m <- leaflet() %>% addTiles()

## save html to png
saveWidget(m, "temp.html", selfcontained = FALSE)
webshot("temp.html", file = "Rplot.png",
        cliprect = "viewport")

这是生成的图像。


更新:

现在 webshot 已在 CRAN 上正式发布,并且在 ma​​pview 包中引入了mapshot,不再需要这种手动解决方法。现在,代码就像这样:

library(mapview)

## 'leaflet' objects (image above)
m <- leaflet() %>% addTiles()
mapshot(m, file = "~/Rplot.png")

## 'mapview' objects (image below)
m2 <- mapview(breweries91)
mapshot(m2, file = "~/breweries.png")

【讨论】:

  • 我认为webshot()函数仍然必须用于存储高分辨率地图,尽管mapview package
猜你喜欢
  • 2020-12-16
  • 1970-01-01
  • 2011-03-07
  • 2014-05-03
  • 2020-09-14
  • 2012-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多