繁体   English   中英

有没有办法为 R 修改 leaflet 中现有标记/形状的不透明度(有光泽)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM