有没有一种方法可以修改R(带有光泽)传单中现有标记/形状的不透明度

时间:2020-05-21 22:52:33

标签: javascript r shiny leaflet

这可能是一个愚蠢的问题。我将地图嵌入到闪亮的应用程序中,我正在寻找一种以编程方式调整标记/形状或其中一组标记的不透明度的方法,将它们添加到addMarkers(...)或类似的{{1 }}函数。可能,相同的原理也可能适用于其他标记参数,但是不透明度是我的首要目标。

根据此线程判断,JavaScript传单似乎允许它使用:setOpacity for multiple markers at the time

答案中的JSFiddle代码似乎可以实现这一点,方法是访问给定组下的每一层并通过add*设置其不透明度。

以下是此类闪亮应用程序的最小设置:

ui.R:

layer.setOpacity()

server.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 <- 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) }) } 函数尚未在任何地方实现:我正在寻找一种实现这种功能的方法。

在R中是否有实现此目标的方法?可能在其中扔一些JavaScript ...

谢谢!

1 个答案:

答案 0 :(得分:0)

谢谢,喜剧。

我无法直接帮助您解决问题:las,我对leaflet不够熟。但是,有些谷歌搜索给了我leaflet.opacity package。令我惊讶的是,结合shinyjs-特别是extendShinyjs-应该可以给您想要的东西。