[英]Is there a way to modify opacity for existing markers/shapes in leaflet for R (with shiny)
这可能是一个愚蠢的问题。 I have a map embedded in a shiny app and I am looking for a way to programatically adjust opacity of a marker/shape or groups of those, after they have been added to the leaflet map with addMarkers(...)
or similar add*
function。 潜在地,相同的原则也适用于其他标记参数,但不透明度是我的第一个目标。
Javascript leaflet 似乎允许它,根据这个线程判断: 当时多个标记的 setOpacity
答案中的 JSFiddle 代码似乎完全允许这样做,通过访问给定组下的每一层并通过layer.setOpacity()
设置其不透明度。
以下是此类 shiny 应用程序的最小设置:
ui.R:
library(shiny)
library(shinydashboard)
library(leaflet)
dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody(
leafletOutput("maptest"),
sliderInput(inputId = "opacity.slider", label = "opacity", min = 0, max = 1, value = 1)
)
)
server.R:
server <- function(input, output) {
output$maptest <- renderLeaflet({
leaflet() %>% addMarkers(lat = c(0), lng = c(0), layerId = "layer1", group = "testgroup")
})
observeEvent(input$opacity.slider, {
print(input$opacity.slider)
leafletProxy("maptest") %>% setGroupOpacity(group = "testgroup", opacity = input$opacity.slider)
})
}
观察者中的setGroupOpacity
function 监视 slider 上的事件尚未在任何地方实现:我正在寻找一种方法来实现这样的 ZC1C425268E68385D1AB5074C17A94F14
无论如何在 R 中实现这一点? 可能会在那里扔一些 javascript ......
谢谢!
谢谢,科马斯。
我无法直接帮助您解决问题:唉,我对leaflet
不够熟悉。 然而,一点谷歌搜索给了我leaflet.opacity
package 。 让我感到震惊的是,结合shinyjs
- 特别是extendShinyjs - 应该给你你想要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.