我试图让用户选择在Shiny中聚集在传单中渲染的地图点,或者显示原始信号。
群集可以正常工作,但不能渲染单个点。
代码:
ui.R方面:
tabPanel('map',
fluidRow(
column(2, actionButton('plot_map', 'render'))
)
, checkboxInput('map_cluster', label = 'cluster faults', value = TRUE)
, sliderInput('map_maxClusterRadius', 'max cluster radius', min = 10, max = 300, step = 5, value = 80)
, leafletOutput("fault_map")
)
server.R side:
output$fault_map <- renderLeaflet({
input$plot_map # a button to execure
plot_data <- data.table(matrix(rpois(lambda = 50, 500), ncol = 5))
withProgress(message = 'rendering...', {
map <- leaflet() %>% addProviderTiles("OpenStreetMap.HOT" # "Stamen.TonerBackground"
# , options = providerTileOptions(noWrap = TRUE)
)
if (input$map_cluster){
map <- map %>%
addCircleMarkers(data = plot_data, lng = plot_data[, V1], lat = plot_data[, V2], radius = 2.5,
color = 'red'
, clusterOptions = markerClusterOptions(removeOutsideVisibleBounds = TRUE
, spiderfyOnMaxZoom = TRUE
, showCoverageOnHover = TRUE
, maxZoom = 9
, popup = ~V4
, maxClusterRadius = input$map_maxClusterRadius)
)
} else {
map <- map %>%
addCircleMarkers(data = plot_data, lng = plot_data[, V1], lat = plot_data[, V2], radius = 1,
color = 'red'
# , clusterOptions = markerClusterOptions(removeOutsideVisibleBounds = TRUE
# , spiderfyOnMaxZoom = TRUE
# , showCoverageOnHover = TRUE
# , maxZoom = 9
# , popup = ~V4
# , maxClusterRadius = input$map_maxClusterRadius)
)
}
return(map)
})
})
有和没有复选框选择:
此外,多边形预览(群集覆盖区域的预览)等内容不起作用。这种事情:
所有这一切都在一个月前开始。我做的唯一改变是转移到ShinyBS,但正如你在上面看到的那样,即使我不使用ShinyBS它也不起作用。
尝试使用类似的代码从RStudio渲染产生一个显示各个点的图。
谢谢!