R-код для сохранения файла perfect.tag.list в html, как это делает программа просмотра-> экспорт-> сохранить как веб-страницу - PullRequest
1 голос
/ 06 апреля 2020

У меня есть карта листовок, которую я изменил, чтобы иметь специальные CSS для всплывающих окон, следуя советам здесь . Теперь я хочу сохранить результат как HTML веб-страницу. Полученный объект имеет тип shiny.tag.list, который я могу просматривать с помощью средства просмотра и экспортировать в HTML вручную, используя кнопку Export->Save as web page. Тем не менее, я не могу найти код R для выполнения этой же операции. Я пробовал функцию mapshot в пакете mapview и функцию saveWidget в htmltools, но они не работают с ошибкой:

> saveWidget(lf,"test.html")
Error in .getNamespace(pkg) : 
 invalid type/length (symbol/0) in vector allocation

Я также пробовал функцию save_html пакета htmltools, но при этом создается файл HTML, который не является автономным.

Как мне сделать то же, что кнопка Export->Save as web page делает с кодом R?

Вот пример кода для демонстрации проблем:

library(sf)
library(leaflet)
library(htmltools)
library(mapview)

x = data.frame(lat=c(44,45),lon=c(3,2),
               label=c("p1","p2"))

x = st_as_sf(x,coords=c("lon","lat"),crs=4326)

lf = x %>% leaflet %>% addTiles() %>% addMarkers(label=~label,popup=~label)
st = browsable(
  tagList(list(
    tags$head(
      tags$style(".leaflet-popup-content-wrapper {background-color: #ff0000;}")
    ),
    lf
  ))
)

saveWidget(st,"test.html") # Fails with error
mapshot(st,"test.html") # Fails with same error
save_html(st,"test.html") # Produces HTML with external dependencies
...