Я разрабатываю блестящее приложение для отображения картограммы, используя листовки и шейп-файлы для добавления полигонов. Снаружи блестящий все работает нормально, но с блестящим у меня возникла проблема при использовании addLegend
следующим образом:
mypal <- reactive({
colorBin(palette = "RdYlBu", domain = get("map_fires")[[paste0("qm_", selectedYear())]],
bins = 5, reverse = TRUE, pretty = FALSE,
na.color = "#FFFAFA")
})
output$map <- renderLeaflet({
leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = map_fires,
stroke = TRUE, weight = 1, smoothFactor = 0.2, fillOpacity = 0.3,
fillColor = ~mypal()(get("map_fires")[[paste0("qm_", selectedYear())]]),
highlight = highlightOptions(
weight = 5,
color = "#666",
fillOpacity = 0.7,
bringToFront = TRUE),
label= lapply(stats_labels(), HTML),
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
addLegend(position = "bottomright", pal = ~mypal(),
values = ~get("map_fires")[[paste0("qm_", selectedYear())]],
opacity = 1)
})
Код выше возвращает:
Warning: Error in if: argument is of length zero
104: addLegend
...
Я использую paste0("qm_", selectedYear())
чтобы ссылаться на разные столбцы с годовыми данными.
Я считаю, что проблема в values = ~get("map_fires")[[paste0("qm_", selectedYear())]]
, но не могу сказать, почему. Я уже пытался указать набор данных на addLegend
, а также поставить конкретный столбец на values =
(т.е. без зависимости от реактивного значения selectedYear()
), но безрезультатно.
Снаружиблестящие вещи хорошо работают с кодом ниже (где я продолжаю использовать get("map_fires")[[paste0("qm_", 2018)]]
, меняя selectedYear()
для определенного года, просто чтобы лучше показать мой случай):
mypal <- colorBin(palette = "RdYlBu", domain = get("map_fires")[[paste0("qm_", 2018)]],
bins = 5, reverse = TRUE, pretty = FALSE,
na.color = "#FFFAFA")
leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addPolygons(data = map_fires,
stroke = TRUE, weight = 1, smoothFactor = 0.2, fillOpacity = 0.3,
fillColor = ~mypal(get("map_fires")[[paste0("qm_", 2018)]]),
highlight = highlightOptions(
weight = 5,
color = "#666",
fillOpacity = 0.7,
bringToFront = TRUE),
label= lapply(stats_labels, HTML),
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
addLegend(position = "bottomright", pal = mypal,
values = get("map_fires")[[paste0("qm_", 2018)]],
opacity = 1)
Я что-то упустил?