Создание карты листовки в полноэкранном режиме в Ршинах - PullRequest
1 голос
/ 21 апреля 2020

У меня проблемы с созданием моей листовки в полноэкранном режиме go. Хотя я, очевидно, могу просто вручную установить ширину и высоту карты в соответствии с размером экрана, я бы хотел, чтобы карта адаптировалась к размеру экрана, на котором она отображается.

Как мне go автоматизировать размер карты?

Вот код, который я пробовал до сих пор. К сожалению, однако, это не регулирует высоту должным образом.

library(shiny)
library(leaflet)

location=c(46.52433,10.12633)

ui <- fluidPage(
  tags$head(tags$style(HTML("#map {height:100%, width:100%;}"))),

  leafletOutput("map")


)

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

  output$map = renderLeaflet({
    leaflet() %>% addTiles()  %>% setView(lat = location[1],lng = location[2],zoom = 10) %>% 
      addMarkers(lat = location[1],lng = location[2],popup = "Test") })


}


shinyApp(ui, server)



Любая помощь будет принята с благодарностью, спасибо!

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

С JavaScript:

js <- '
$(document).on("shiny:connected", function(){
  $("#map").css({
    width: window.innerWidth, 
    height: window.innerHeight
  });
  $(window).on("resize", function(e){
    if(e.target instanceof Window){
      $("#map").css({width: window.innerWidth, height: window.innerHeight});
    }
  });
})
'
location=c(46.52433,10.12633)

ui <- fluidPage(
  tags$head(
    tags$style(HTML("html,body {margin: 0; overflow: hidden;}")),
    tags$script(HTML(js))
  ),
  ......
0 голосов
/ 21 апреля 2020

Попробуйте добавить width = "100%", height = "100%" к leafletOutput и использовать fillPage(), как показано ниже:

library(shiny)
library(leaflet)

location=c(46.52433,10.12633)

ui <- fillPage(
  tags$style(type = "text/css", "html, body {width:100%; height:100%}"),
  leafletOutput("map", width = "100%", height = "100%")

  )

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

  output$map = renderLeaflet({
    leaflet() %>% addTiles()  %>% setView(lat = location[1],lng = 
location[2],zoom = 10) %>% 
      addMarkers(lat = location[1], lng = location[2],popup = "Test") })


}


shinyApp(ui, server)
...