使用串扰过滤包含集群的传单地图

时间:2019-09-17 12:05:03

标签: r leaflet htmlwidgets

我正在使用Flexdashboard在仪表板上工作,并希望展示使用串扰过滤在一起的地图和数据表。我已经可以使用标准或圆形标记来执行此操作,但是在使用群集时似乎不起作用。

我发现此问题是在Github from 2017 which links to a full example in RPubs上提出的,但是找不到解决方案。这是该示例中的代码:

library(crosstalk)
library(leaflet)
library(DT)

# Wrap data frame in SharedData
sd <- SharedData$new(quakes[sample(nrow(quakes), 10),])

bscols(
  # Create a filter input
  filter_slider("mag", "Magnitude", sd, column=~mag, step=0.1, width=250),
  leaflet(sd) %>% addTiles() %>% addMarkers( clusterOptions = markerClusterOptions()),
  datatable(sd, extensions="Scroller", style="bootstrap", class="compact", width="100%",
            options=list(deferRender=TRUE, scrollY=300, scroller=TRUE))
)

问题在于,表中的行数随着幅度范围的缩小而减少,而簇不会改变。只需使用标准标记代替聚类就可以工作(同样取自Matthias Hinz的RPubs示例):

# Use SharedData like a dataframe with Crosstalk-enabled widgets
bscols(
  # Create a filter input
  filter_slider("mag", "Magnitude", sd, column=~mag, step=0.1, width=250),
  leaflet(sd) %>% addTiles() %>% addMarkers(),
  datatable(sd, extensions="Scroller", style="bootstrap", class="compact", width="100%",
            options=list(deferRender=TRUE, scrollY=300, scroller=TRUE))
)

我希望集群随着数据过滤而更新。这可以通过创建新集群或更改现有集群上显示的数量来实现。

我希望这是一个独立的html文档,可以脱机共享而不是托管,因此据我了解,我将无法使用Shiny。

0 个答案:

没有答案