javascript - map 缩放问题。 Shiny +传单

标签 javascript r shiny leaflet

我不能在我 Shiny 的应用程序中使用“全屏” map ,因为当我使用“100%”参数时, map 会消失...

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

但是当我这样做的时候

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

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

我试过了

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

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

最佳答案

嗯,我猜 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)

关于javascript - map 缩放问题。 Shiny +传单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41749467/

相关文章:

JavaScript 和字符串中的正斜杠

r - 查看列表中的哪个向量包含在另一个列表中的向量中(查找人员姓名匹配)

r - 如何根据前一行过滤行并使用 dplyr 保留前一行?

python - RRuntimeError : Error in qr. lm(object) : lm object does not have a proper 'qr' component. 排名为零或不应使用 lm(.., qr=FALSE)

javascript - jquery:ajax 未在文档 getready 中触发

javascript - Angular 项目使用 Tomcat 还是 express

css - 在 R Shiny 中链接外部 CSS 样式表

shiny - 使用操作按钮启用和禁用侧边栏切换按钮

r - 强制 Shiny 的应用程序在移动设备上显示桌面 View

javascript - 创建 React 应用程序 : Adding scss