我希望沿着“可用图层”的线条向图层控制框添加标题。
我的搜索使我只找到了一个相关结果:
我的代码:
map %>% leaflet() %>%
addProviderTiles(provider = "CartoDB") %>%
# Group 1 Polygons
addPolygons(data = map[!is.na(map$var),] ,weight =1,
color = ~g1_pal(g1), fillOpacity = .6,
group = "Group 1",
# add labels
label = ~labels,
# highlight polygons on hover
highlight = highlightOptions(weight = 5, color = "white",
bringToFront = TRUE)) %>%
# Group 2
addPolygons(data = map[!is.na(map$var2),], weight =1,
color = ~g2_pal(g2), fillOpacity = .6,
group = "Group 2",
# add labels that display mean income
label = ~labels2,
# highlight polygons on hover
highlight = highlightOptions(weight = 5, color = "white",
bringToFront = TRUE)) %>%
addLayersControl(baseGroups = c("Group 1", "Group 2"),
options = layersControlOptions(collapsed=F,
# Series of attempts
label = "Layers",
title = "Layers"))
Run Code Online (Sandbox Code Playgroud)
这些尝试都没有奏效。从上面的链接中确实可以看到有一个可以访问的属性,但我不确定如何引用它。
执行此操作的最佳方法(我知道)是htmlwidgets::onRender在渲染时将您的 Javascript 添加到地图中。这在文档最后一页底部的最后一节中进行了描述,因此很容易错过!
这是一个实现 Saurabh Yadav 在他对您链接的问题的回答中描述的 Javascript 的示例。您只需将 Javascript 函数添加到leaflet()管道调用的末尾:
library(leaflet)
leaflet() %>%
addTiles() %>%
addLayersControl(
overlayGroups = "MyImaginaryLine",
options = layersControlOptions(collapsed = FALSE)) %>%
htmlwidgets::onRender("
function() {
$('.leaflet-control-layers-overlays').prepend('<label style=\"text-align:center\">My Epic Title</label>');
}
")
Run Code Online (Sandbox Code Playgroud)