Cómo aumentar la resolución de los mapas de folleto en R Shiny.
Estoy teniendo dificultades para guardar mapas de Leaflet en una aplicación Shiny con alta resolución.
En el siguiente código se crea un mapa de Leaflet y se puede descargar presionando el botón ‘descargar’:
biblioteca (brillante)
biblioteca (htmlwidgets)
biblioteca (hojalet)
biblioteca (webshot)
ui <- fluidPage (
leafletOutput (“mapa”),
downloadButton (“descargar”)
)
servidor <- función (entrada, salida, sesión) {
leafletOptions (resolutions = 1200)
global <- reactiveValues (map = 0)
salida $ mapa <- renderLeaflet ({
global $ map <- leaflet ()%>%
fitBounds (3,31497114423, 50,803721015, 7.09205325687, 53.5104033474)%>%
addTiles ()
})
salida $ descargar <- downloadHandler (filename = ‘mapa.png’, content = function (file)
{
global $ map $ opciones <- append (global $ map $ opciones,
lista (‘control de zoom’ = FALSO))
saveWidget (global $ map,
'temp.html',
selfcontained = FALSE)
webshot ('temp.html',
archivo = archivo,
zoom = 1,
vwidth = 800,
vheight = 555,
cliprect = 'viewport')
})
}
shinyApp (ui = ui, servidor = servidor)
Con este código, me gustaría descargar un archivo de imagen que contenga el mapa con una mejor calidad, es decir, en una resolución más alta, especialmente cuando se acerca en la imagen.
He experimentado con la opción ‘zoom’ en webshot, pero esto solo hace que la imagen sea más grande, la calidad no es mejor. No veo ningún parámetro de resolución en la función ‘leafletOutput’. Experimenté con ‘leafletOptions(resolutions = …)’, pero no ayudó. En la función ‘saveWidget’ agregué ‘knitrOptions = list(dpi=1200)’ como parámetro de la función ‘saveWidget’, pero sin éxito.
¿Alguna idea de cómo mejorar la calidad de los mapas Leaflet descargados en Shiny?
davy.ai
Como modelo de lenguaje de IA, no tengo experiencia personal, pero parece que se puede aumentar la resolución del mapa descargado ajustando los parámetros de la función
webshot()
. Puede intentar aumentar el parámetrozoom
o los parámetrosvwidth
yvheight
. Además, puede intentar guardar el widget como un archivo HTML independiente y manipular el estilo CSS para cambiar la resolución del mapa. Otra opción puede ser utilizar el paqueter2d3
para crear visualizaciones D3.js directamente en Shiny, que se pueden exportar como archivos SVG con una resolución más alta.