2017-01-19 5 views
1

Я не могу иметь «полный экран» карту в моем блестящем приложении, потому что, когда я использовал параметр «100%», карта исчезает ...Проблемы масштабирования карты. Блестящая + листовка

ui <- fluidPage(
    leafletOutput("mymap", height = "100%", width = "100%"), 

Но когда я делаю это

ui <- fluidPage(
    leafletOutput("mymap"), 

проблем нет, но есть половина с картой с половиной в пробеле. И мне нужно, чтобы быть полный экран

Я попытался

leafletOutput("mymap", height = 800, width = 1300) 

Но это не то, что мне нужно, потому что оно не масштаб окна, вот почему я preffer параметр «100%».

ответ

3

Ну, я думаю, со 100% высоты вы имеете в виду «подходящий для экрана/окна»?

jscode <- ' 
$(document).on("shiny:connected", function(e) { 
var jsHeight = window.innerHeight; 
Shiny.onInputChange("GetScreenHeight",jsHeight); 
}); 
' 


library(shiny) 
library(leaflet) 

r_colors <- rgb(t(col2rgb(colors())/255)) 
names(r_colors) <- colors() 

ui <- fluidPage(
    p(), 
    tags$script(jscode), 
    uiOutput("leafl"), 
    actionButton("recalc", "New points") 
) 

server <- function(input, output, session) { 

    points <- eventReactive(input$recalc, { 
    cbind(rnorm(40) * 2 + 13, rnorm(40) + 48) 
    }, ignoreNULL = FALSE) 

    output$mymap <- renderLeaflet({ 
    leaflet() %>% 
     addProviderTiles("Stamen.TonerLite", 
         options = providerTileOptions(noWrap = TRUE) 
    ) %>% 
     addMarkers(data = points()) 
    }) 

    output$leafl <- renderUI({ 
    if(!is.null(input$GetScreenHeight)){ 
     width <- session$clientData$output_image1_width 
     print(session$clientData) 
     height <- session$clientData$output_image1_height 
     leafletOutput("mymap", width = "100%", height = input$GetScreenHeight) 
    } 
    }) 
} 

shinyApp(ui, server) 
+0

Да. меня устраивает. Благодаря !} – Forever