如何在R Leaflet中设置默认仅显示单个Overlay分组而非全部?
解决Leaflet默认仅显示指定Overlay分组的问题
要实现初始仅显示mex分组,只需把不需要默认展示的gtm分组对应的图层设置为初始不可见即可,具体通过pathOptions(visible = FALSE)参数控制:
修改后的完整代码如下:
library(raster) library(leaflet) #加载Shapefile文件 gtm <- getData('GADM', country = 'GTM', level = 0) mex <- getData('GADM', country = 'MEX', level = 0) leaflet() %>% addTiles() %>% # 将gtm分组设为初始不可见 addPolygons(data = gtm, fillColor = 'red', group = "gtm", options = pathOptions(visible = FALSE)) %>% addLegend(color = "red", labels = gtm@data$GID_0, group = "gtm", opacity = 1) %>% addPolygons(data = mex, fillColor = 'blue', group = "mex") %>% addLegend(color = "blue", labels = mex@data$GID_0, group = "mex", opacity = 1) %>% addLayersControl(overlayGroups = c("gtm", "mex"), options = layersControlOptions(collapsed = F))
关键说明:
- 在
addPolygons(gtm)中添加options = pathOptions(visible = FALSE),让该图层默认不显示 - 图例默认会同步对应分组的可见状态,无需额外设置图例的隐藏属性
- 给图例加上
opacity = 1是为了让颜色显示更清晰,属于可选优化操作
页面加载后只会展示mex的图层和图例,用户可通过图层控制器切换显示gtm分组。
内容的提问来源于stack exchange,提问作者Ben Reid
相关产品推荐
相关产品推荐

