web-dev-qa-db-fra.com

Comment enregistrer le dépliant dans la carte R au format png ou jpg?

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.

28
sms

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.

map


Mise à jour:

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")

breweries

48
fdetsch