如何访问R中由传单生成的地图

ytk*_*ytk 8 r leaflet

假设我有这样的代码

# Install devtools if needed
if(!require(devtools)) install.packages("devtools")
# view rawif-devtools.R hosted with ? by GitHub
# Install leaflet package
if(!require(leaflet)) install_github("rstudio/leaflet")
library("leaflet")
mymap <- leaflet()
mymap <- addTiles(mymap)
mymap
Run Code Online (Sandbox Code Playgroud)

这会在Chrome中打开,文件路径如下:

file:///var/folders/8x/v2tk5zy51x51jx9jbp0m29qr0000gn/T/RtmpQaeu1E/viewhtmlf74547061f7d/index.html. 
Run Code Online (Sandbox Code Playgroud)

假设我想将此内容发布到我的博客中.我究竟如何访问这个html文件?有没有办法设置保存到哪里?我以为它会被保存到工作目录但事实并非如此.我想我可以通过终端访问它,但我希望有一个更简单的方法.

Spa*_*man 16

我开发了一些函数,可以将传单映射保存在临时文件夹以外的某个位置.

请参阅此处的要点:https://gist.github.com/barryrowlingson/d066a7ace15cf119681a获取完整信息,简短版本是以下两个功能:

saveas <- function(map, file){
    class(map) <- c("saveas",class(map))
    attr(map,"filesave")=file
    map
}

print.saveas <- function(x, ...){
    class(x) = class(x)[class(x)!="saveas"]
    htmltools::save_html(x, file=attr(x,"filesave"))
}
Run Code Online (Sandbox Code Playgroud)

然后你所做的就是:

leaflet() %>% etc etc %>% saveas("/wherever/you/want/index.html")
Run Code Online (Sandbox Code Playgroud)

或在你的工作方式:

mymap <- leaflet()
mymap <- addwhatever(mymap)
saveas(mymap, "/wherever/you/want/index.html")
Run Code Online (Sandbox Code Playgroud)

此时,该文件夹/wherever/you/want应具有一组自包含的地图文件.我认为它应该是可移植的,即在任何Web服务器上工作,但我无法保证......


ein*_*nar 11

迟到的回应:

library(leaflet)
mymap <- leaflet() %>%
  addTiles()
library(htmlwidgets)
saveWidget(widget = mymap, file = "/wherever/you/want/mymap.html")
Run Code Online (Sandbox Code Playgroud)

埃纳尔