是否有隐藏在某处的功能来检索小册子地图上当前可用的所有layerIds或群组?我很确定使用JavaScript界面这将会相当简单,但我还没有找到使用R leaflet API的解决方案。从小册子获取所有图层ID或群组
上下文是一个闪亮的应用程序,可以连续添加图层。我正在辩论维护一个reactiveValues并在适当的时候用每个group/layerId更新它,但最终会成为一堆额外的编码/观察者。有没有一种功能或简单的方法来获得组或层次标识,或者甚至更好?
是否有隐藏在某处的功能来检索小册子地图上当前可用的所有layerIds或群组?我很确定使用JavaScript界面这将会相当简单,但我还没有找到使用R leaflet API的解决方案。从小册子获取所有图层ID或群组
上下文是一个闪亮的应用程序,可以连续添加图层。我正在辩论维护一个reactiveValues并在适当的时候用每个group/layerId更新它,但最终会成为一堆额外的编码/观察者。有没有一种功能或简单的方法来获得组或层次标识,或者甚至更好?
你可以使用的L.Map
的eachLayer
方法来迭代各层:
迭代过的地图的层,任选地指定所述迭代器功能的上下文。
这将是伟大的,但无法弄清楚如何在R中做到这一点。无论如何+1,我可能不得不使用javascript,我想。 – jenesaisquoi
如果你有一张地图
m <- leaflet() %>% addTiles() %>%
addPopups(-122.327298, 47.597131, content, layerId = "my layer id",
options = popupOptions(closeButton = TRUE)
)
然后你可以从
m$x$calls[[2]]$args[[4]]
[1] "my layer id"
得到layerId的对于与引进多layerIds和群体更广泛的图M多种方法(如addMarkers,addCircles等)尝试使用
l <- lapply(lapply(m$x$calls, function(x) x[[2]]), function(x) x[4][[1]])
layerIds <- unlist(l[sapply(l, function(x) {class(x) != "list" & !is.null(x)})])
g <- lapply(lapply(m$x$calls, function(x) x[[2]]), function(x) x[5][[1]])
groupIds <- unlist(g[sapply(g, function(x) {class(x) != "list" & !is.null(x)})])
如果您在闪亮的应用程序中使用传单代理,是否可以执行此项工作? – nate
事实上,在香草JavaScript中,您可以简单地使用图层组作为“代理”,将所有其他图层添加到它而不是地图中,然后使用[getLayers()](http://leafletjs.com/ #的reference.html图层组-getlayers)。尽管如此,一些控件和插件仍然会直接添加到地图中。 – ghybs