是否有隱藏在某處的功能來檢索小冊子地圖上當前可用的所有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