我的传单地图不会在我闪亮的仪表板上呈现

问题描述 投票:0回答:1

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

我的数据:enter image description here

这是我的代码:

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")
     })
}
)

代码已运行,但是我在闪亮的仪表板中仅留有空白。我在下面发布了一张图片。enter image description here

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

r shiny leaflet shinydashboard
1个回答
0
投票

没有可复制的示例,很难知道。您可能缺少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)
© www.soinside.com 2019 - 2024. All rights reserved.