我想知道如何隱藏/切換基於傳單R中的addLayerControl()的圖例?當選項層a切換時,選項層b的數據不會由addPolygons()顯示,因爲我可以使用GROUP。然而,addLegend()選項沒有GROUP功能,所以我不能夠隱藏圖層組B(藍色)的傳說,當我選擇的組層(紅色):如何隱藏/切換基於傳單中的addLayerControl()傳說R
你有什麼想法如何做到這一點?
問候,
里斯
我想知道如何隱藏/切換基於傳單R中的addLayerControl()的圖例?當選項層a切換時,選項層b的數據不會由addPolygons()顯示,因爲我可以使用GROUP。然而,addLegend()選項沒有GROUP功能,所以我不能夠隱藏圖層組B(藍色)的傳說,當我選擇的組層(紅色):如何隱藏/切換基於傳單中的addLayerControl()傳說R
你有什麼想法如何做到這一點?
問候,
里斯
此代碼爲我工作:
observeEvent(input$mymap_groups,{
mymap <- leafletProxy("mymap", data = SalesMap)
mymap %>% clearControls()
if (input$mymap_groups == '1') {
mymap %>% addLegend(position="bottomright", pal=pal1, values=SalesMap$SALES, title="a")
}
else if (input$mymap_groups == '2') {
mymap %>% addLegend(position="bottomright", pal=pal2, values=SalesMap$Bonnen, title="b")
}
})
您可以使用輸入$ mymap_groups,以確定什麼樣的羣體是selected.In的observeEvent(),您可以使用if/else語句來創建基於組的圖例。
如果有人在將來看這個,有一種新的可行的方法。
如果您使用的開發/的leaflet
包Github上版本,addLegend()
現在支持group
和layerId
參數。
(運行命令devtools::install_github('rstudio/leaflet')
安裝)
即使是最新的版本CRAN(1.1.0)支持layerID
。
假設你去開發版本,下面的代碼應該工作:
leaflet() %>%
#Polygon Layers
addPolygons(data = exampleDataOne, group = "Group A") %>%
addPolygons(data = exampleDataTwo, group = "Group B") %>%
#Legend Layers
addLegend(values = exampleValuesOne, group = "Group A",
position = "bottomright") %>%
addLegend(values = exampleValuesTwo, group = "Group B",
position = "bottomright") %>%
#Layers Control
addLayersControl(overlayGroups = c("Group A","Group B"),
options = layersControlOptions(collapsed = FALSE))
這應該有當相應層是活動僅顯示傳說預期的效果。
一個潛在的問題是,默認情況下,所有leaflet
圖層都處於活動狀態。如果你有重疊的多邊形,這可能會導致視覺吸引力較差的地圖。而且,如果你有多個傳說,這也將是一個問題。
你可以做的是使用hideGroup()
函數。
如果你想只Group A
從上面的例子在開始活躍,您可以添加
%>% hideGroup("Group B")
上面的代碼塊的結尾。
不錯的解決方案,但重要的是要注意,它似乎不適用於'addLayersControl'中的'overlayGroups'選項 – Bastien