【问题标题】:My leaflet map will not render in my shiny dashboard我的传单地图不会在我闪亮的仪表板中呈现
【发布时间】:2020-08-28 18:50:22
【问题描述】:

我一直在尝试渲染我在闪亮的仪表板选项卡框中创建的传单地图。传单代码在常规脚本中运行良好,地图在查看器中呈现。但是,当我将我的代码添加到 ui.r 和 server.r 时,我得到的只是仪表板中应该存在地图的空白区域。我没有收到任何错误,所以我很难弄清楚可能出了什么问题。我读过当指定地图的高度和宽度时,闪亮有时会出现问题,但我保留了这个默认值,所以我认为这不是问题。我唯一能想到的另一件事是,我正在使用的包中的一些对象被屏蔽了,并且我的一些包不是最新的。我不知道这是否会导致这个问题。

我的数据:

这是我的代码:

library(shiny)
library(shinydashboard)
library(leaflet)
library(tigris)
library(dplyr)
library(tidyverse)
library(leaflet.extras)
library(rmapshaper)
library(rsconnect)
library(plotly)
library(ggplot2)
library(rgdal)
library(htmltools)
library(shinyWidgets)
library(DT)

melanoma_incidence <- read_excel("Incidence_data.xlsx")
US_states <- tigris::states()
US_Join <- geo_join(US_States, Melanoma_Incidence, by_sp = "GEOID", by_df = "stateFIPS")
US_Join <- subset(US_Join, !is.na(Value))

pal <- colorNumeric("Reds", domain = US_Join$Value)
labels <- sprintf(
  "<strong>%s</strong><br/>%g",
  US_Join$State, US_Join$Value) %>% lapply(htmltools::HTML)

ui.r

shinyUI(
    dashboardPage(
        dashboardHeader(title = "UV and Skin Cancer"),
     dashboardBody(
            tabItems(
                tabItem(tabName = "Homepage", h2("UV Exposure and Melanoma"),
                tabItem(tabName = "Homepage",
                fluidRow(
                tabBox(id="National Map",
                tabPanel("Melanoma Incidence", leafletOutput("mymap"))
                                ))))))))
server.r

shinyServer(function(input, output) {
     output$mymap <- renderLeaflet({
       leaflet() %>% addProviderTiles(providers$CartoDB.Positron) %>%
         setView(-96, 37.8, 4) %>%
         addPolygons(data = US_Join,
                     fillColor = ~pal(US_Join$Value),
                     fillOpacity = 0.9,
                     weight = 0.2,
                     smoothFactor = 0.2,
                     label = labels,
                     labelOptions = labelOptions(
                       style = list("font-weight" = "normal", padding = "3px 8px"),
                       textsize = "15px",
                       direction = "auto")) %>%
         addLegend(pal = pal,
                   values = US_Join$Value,
                   position = "bottomright",
                   title = "Incidence")
     })
}
)

代码运行,但我的闪亮仪表板中出现了一个空白区域。我在下面贴了一张图片。

有人知道为什么我的地图没有渲染吗?没有错误消息,我不知所措。任何帮助表示赞赏。编辑:我添加了其余的代码和数据。

【问题讨论】:

  • 曾经解决过这个问题吗?我也有类似的

标签: r shiny leaflet shinydashboard


【解决方案1】:

如果没有可重现的示例,就很难知道。您可能缺少 ui.R 或 server.R 中所需的一些全局变量,您可能有空值,或者可能发生了其他事情。

下面的代码至少可以在闪亮的应用程序中运行 - 如果这有助于您进行故障排除:

library(leaflet)
library(raster)
#> Loading required package: sp
library(shiny)
US_Join <- getData('GADM', country='US', level=1)
set.seed(1)
US_Join$Value <- sample(1:100, 51, replace=TRUE)
pal <- colorNumeric(
  palette = "Blues",
  domain = US_Join$Value)
labels <- sprintf(
  "<strong>%s</strong><br/> <strong>Incidence:</strong> %g",
  US_Join$NAME_1, US_Join$Value
) %>% lapply(htmltools::HTML)


server <- shinyServer(function(input, output) {
  output$mymap <- renderLeaflet({
    leaflet() %>% addProviderTiles(providers$CartoDB.Positron) %>%
      setView(-96, 37.8, 4) %>%
      addPolygons(data = US_Join,
                  fillColor = ~pal(US_Join$Value),
                  fillOpacity = 0.9,
                  weight = 0.2,
                  smoothFactor = 0.2,
                  label = labels,
                  labelOptions = labelOptions(
                    style = list("font-weight" = "normal", padding = "3px 8px"),
                    textsize = "15px",
                    direction = "auto")) %>%
      addLegend(pal = pal,
                values = US_Join$Value,
                position = "bottomright",
                title = "Incidence")
  })
}
)

ui <- tabPanel("Melanoma Incidence", leafletOutput("mymap"))

shinyApp(ui = ui, server = server)

【讨论】:

    猜你喜欢
    • 2015-09-16
    • 2018-03-23
    • 2020-05-02
    • 1970-01-01
    • 2015-04-22
    • 2020-11-20
    • 1970-01-01
    • 2022-01-02
    • 2021-05-12
    相关资源
    最近更新 更多