r - 如何创建闪亮的滑块应用程序以在我创建的地图上查看我的数据?
问题描述
我使用下面的数据框在传单中创建了一个地图,使用下面的代码。但是,输出地图仅显示数据中最后一个时间戳在每个位置的数据。输出映射如下代码。
如何使用闪亮的应用程序在具有滑块选项的“日期”列的范围内显示此数据,而不是使用仅显示最新时间戳数据的传单的地图!
test_map <- leaflet(width="100%") %>%
setView(lng=-123.2504, lat= 49.2652, zoom=15) %>%
addProviderTiles("Esri.WorldStreetMap")
test_map %>%
addCircles(
data=AQ_df,
lng = ~Longitude,
lat = ~Latitude,
radius = 30,
color = 'black',
fillColor = ~pal(severity),
fillOpacity = 1,
weight=1,
popup = paste0("<strong>ID: </strong>", AQ_df$RAMP_label, "</br>",
"<strong>Location: </strong>", AQ_df$RAMP_desc, "</br>",
"<strong>PM2.5 (ug/m3): </strong>", AQ_df$PM_RAMP, "</br>",
"<strong>CO (ppb): </strong>", AQ_df$CO_RAMP, "</br>",
"<strong>NO (ppb): </strong>", AQ_df$NO_RAMP, "</br>",
"<strong>NO2 (ppb): </strong>", AQ_df$NO2_RAMP, "</br>",
"<strong>O3 (ppb): </strong>", AQ_df$O3_RAMP, "</br>",
#"<strong>CO2 (ppm): </strong>", AQ_df$CO2_RAMP, "</br>",
#"<strong>Temperature (C): </strong>", AQ_df$T_RAMP, "</br>",
#"<strong>Relative Humidity (%): </strong>", AQ_df$RH_RAMP, "</br>",
"<strong>Date: </strong>", AQ_df$date)
) %>%
addLegend(
position = c("topright"),
pal=pal,
values=AQ_df$severity,
title="<strong>PM2.5 (ug/m3)</strong>")
解决方案
library(tidyverse)
library(leaflet)
library(lubridate)
library(shiny)
test_map <- leaflet(width = "100%") %>%
setView(lng = -123.2504, lat = 49.2652, zoom = 15) %>%
addProviderTiles("Esri.WorldStreetMap")
data <- tribble(
~date, ~color, ~Longitude, ~Latitude,
"2021-09-21", "blue", -123.2464, 49.2675,
"2021-09-20", "red", -123.2464, 49.2675,
"2021-09-21", "black", -123.248, 49.2675
) %>%
mutate(date = date %>% parse_date_time("%Y-%m-%d"))
ui <- shinyUI(pageWithSidebar(
headerPanel("Hello Shiny Leaflet with Date range!"),
sidebarPanel(
dateRangeInput(
"range",
"Date range",
start = "2021-09-10",
end = "2021-09-30"
)
),
mainPanel(
leafletOutput("map")
)
))
server <- shinyServer(function(input, output) {
filtered_data <- reactive({
data %>% filter(date > input$range[1] & date < input$range[2])
})
output$map <- renderLeaflet({
test_map %>%
addCircles(
data = filtered_data(),
lng = ~Longitude,
lat = ~Latitude,
radius = 30,
color = "black",
fillOpacity = 1,
weight = 1,
fillColor = filtered_data()$color
)
})
})
shinyApp(ui, server)
推荐阅读
- java - 以编程方式注册的调度 bean 不调度其工作
- c++ - 为什么 std::next 在以空地图开头时卡住
- arrays - 用自定义字符串填充谷歌表格数组
- linux - 密码作为 sshpass 命令的输入
- c# - 水晶报表水晶决定未发现问题
- vim - coc.nvim 用 1 次 esc 键离开插入编译模式?
- google-cloud-functions - Angularfire 6为所有功能设置默认云功能区域(位置)
- php - PHP SimpleXML for循环使用Leaflet map在XML中具有相同名称的每个元素
- reactjs - 错误 (ECONNRESET) 将请求发布到快速服务器。反应快递应用
- javascript - Vscode 代码空间未突出显示我的 JavaScript/React/TypeScript 文件