【问题标题】:Problems scaling map. Shiny + leaflet缩放地图的问题。闪亮+传单
【发布时间】:2017-09-08 05:41:49
【问题描述】:

我的闪亮应用中不能有“全屏”地图,因为当我使用“100%”参数时,地图会消失...

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

但是当我这样做时

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

没有问题,但有一半是地图,一半是空白。我需要它是全屏的

我试过了

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

但这不是我需要的,因为它没有缩放到窗口,这就是为什么我更喜欢“100%”参数。

【问题讨论】:

    标签: javascript r shiny leaflet


    【解决方案1】:

    好吧,我猜你的意思是 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)
    

    【讨论】:

      猜你喜欢
      • 2019-09-03
      • 2023-01-11
      • 2018-07-02
      • 2016-12-29
      • 1970-01-01
      • 2018-03-13
      • 2020-11-15
      • 1970-01-01
      • 2018-10-30
      相关资源
      最近更新 更多