
[英]R Leaflet: Add a Range Slider to Filter Markers without Shiny
[英]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.