J'utilise le package Leaflet pour créer des cartes en R. Cela fonctionne parfaitement. Je peux exporter des cartes dans R avec simplement Exporter, mais je dois exporter des cartes à partir d'un script dans R. Mon code simple est:
png("test_png.png")
(m <- leaflet() %>% addTiles())
dev.off()
Cela fonctionne mais ... le fichier png de sortie est blanc vierge.
Cette solution de contournement très agréable est apparue en réponse à une question posée un peu plus tard ici sur SO. Notez que vous devez installer PhantomJS pour que le code suivant fonctionne.
## 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")
Et voici l'image résultante.
Maintenant que webshot a été officiellement publié sur CRAN et avec l'introduction de mapshot
dans la vue de carte , cette solution de contournement manuelle n'est plus nécessaire. Maintenant, le code va simplement comme ceci:
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")