es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , , ,

Answer

  1. Avatar for 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ámetro zoom o los parámetros vwidth y vheight. 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 paquete r2d3 para crear visualizaciones D3.js directamente en Shiny, que se pueden exportar como archivos SVG con una resolución más alta.

Comments are closed.