繁体   English   中英

在 R Flexdashboard 中通过输入选择过滤 Leaflet 标记

[英]Filter Leaflet markers by input selection in R Flexdashboard

我正在尝试根据在用户定义的日期范围内选择的内容过滤在 Leaflet map 上绘制的标记。 下面的代码返回一个错误,它无法找到 hfxLoc object。我使用了下面的方法(在渲染function 中过滤其他元素(即 renderPlot、renderValueBox 等)。我的过滤方法是正确的,还是正确的?它需要出现在 Leaflet 代码块中的不同位置吗?

inputSelect代码如下:

selectizeInput("shiptypeInput", "Vessel type: ", choices = hfxVessels, selected = "Cargo ships", multiple = TRUE)

leaflet代码如下:

renderLeaflet({
  hfxLoc <- hfxETA %>%
    dplyr::filter(as.Date(eta_date) >= input$dateRange[1] & as.Date(eta_date) <=  input$dateRange[2]) %>%
  leaflet(data = hfxLoc) %>% 
  setView(lng = -60.25, lat = 46, zoom = 6) %>%
  addProviderTiles(providers$CartoDB.Positron,
                   options = providerTileOptions(minZoom = 2, maxZoom = 16)) %>%
  addMarkers(lng = ~lon, lat = ~lat, clusterOptions = markerClusterOptions())

您可以从 leaflet 中删除data = hfxLoc leaflet因为您已经从filter结果中输入过滤后的数据。 管道输入的结果数据将被假定为leaflet中的第一个参数data

renderLeaflet({
  hfxLoc <- hfxETA %>%
    dplyr::filter(as.Date(eta_date) >= input$dateRange[1] & as.Date(eta_date) <=  input$dateRange[2]) %>%
    leaflet() %>%
    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM