问题描述
我在传单地图上添加了一个切换按钮,可以在其中启用/禁用群集标记。始终在启用群集的情况下渲染地图标记。但是,假设用户单击该按钮以禁用群集。然后选择新参数;地图标记通过leafletProxy更新,请参见下文。但是切换状态保持禁用状态(没有群集),并且新数据通过“群集”呈现。
如何更改切换按钮的状态,以便在渲染新标记时,切换也将返回到已启用(带有群集)的状态?
output$map1 <- renderLeaflet({
leaflet() %>% addTiles() %>%
addEasyButton(easyButton(
states = list(
easyButtonState(
stateName="decluster-markers",icon = "ion-toggle",title="disable Clustering",onClick = JS("
function(btn,map) {
var clusterManager =
map.layerManager.getLayer('cluster','crashCluster');
clusterManager.disableClustering();
btn.state('cluster-markers');
Shiny.onInputChange('my_easy_button','no cluster');
}")
),easyButtonState(
stateName="cluster-markers",icon="ion-toggle-filled",title="Enable Clustering",'crashCluster');
clusterManager.enableClustering();
btn.state('decluster-markers');
Shiny.onInputChange('my_easy_button','cluster');
}")
)
)
))
observeEvent(filtered_crashes(),{
leafletProxy("map1") %>%
clearMarkers() %>% clearMarkerClusters() %>%
addAwesomeMarkers(
clusterOptions = markerClusterOptions(maxClusterRadius = 30),clusterId = "crashCluster",group = "Crashes",lng = filtered_crash_lat_long()$lng,lat = filtered_crash_lat_long()$lat
)
})
我已经尝试过了,但是我不认为我应该使用observeEvent,因为它只能看到按钮是否在触发时被触发
observeEvent(input$my_easy_button,{
if (input$my_easy_button == 'no cluster'){
shinyjs::enable("my_easy_button",shinyjs::toggle("no cluster"))
}
})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)