R 传单突出显示选项

2024-01-03

我使用以下命令突出显示 R 传单上的一行

library(leaflet)
m = leaflet() %>% addTiles(group = "OpenStreetMap")

x <- c(1,5,4,8)
y <- c(1,3,4,7)
data = sp::SpatialLines(list(sp::Lines(sp::Line(cbind(x,y)), ID="a")))

addPolylines(smoothFactor = 0.4, map = m, data=data, opacity = 0.3, weight = 2, color = "black", label = "text", popup = "text1", highlightOptions = highlightOptions(bringToFront = TRUE, opacity = 1, weight = 5, sendToBack = FALSE, color = "white"))

有没有办法确保该线保持白色,直到我点击其他地方(无论是在另一条线上还是在地图上的其他地方)?


以下示例显示了类似的行为。您可以单击这些线并突出显示它们,当您再次单击它们时,您可以取消选择它们。

实际上,当您将鼠标悬停在线条上时,您会看到单击/取消单击时突出显示颜色会发生变化,因为我实际上复制了原始行并在第二次单击时再次删除该重复项。

也许它对你的任务有帮助。您还可以在传单中包含一个用于常规地图点击的侦听器input$MAPID_click,但当单击图层时也会触发。

.

library(shiny)
library(leaflet)

## DATA
x <- c(1,5,4,8)
y <- c(1,3,4,7)
data = sp::SpatialLines(list(
  sp::Lines(sp::Line(cbind(x,y)), ID="a"),
  sp::Lines(sp::Line(cbind(rev(x)*1.1,y)), ID="b")), 
  CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"))

data = SpatialLinesDataFrame(data, data = data.frame(
  id = 1:length(data)), match.ID = F)

data$id_2 <- c("a","b")


## UI
ui = fluidPage(
  leafletOutput("map")
)

## SERVER
server <- shinyServer(function(input, output, session) {

  polylines <- reactiveValues(geom = data)
  clicklist <- reactiveValues(ids = vector())

  output$map <- renderLeaflet({

    mapl <- leaflet(options = leafletOptions(doubleClickZoom= FALSE)) %>% 
      addTiles() %>% 
      addPolylines(data = polylines$geom, smoothFactor = 10, opacity = 1,
                   layerId = as.character(polylines$geom$id_2),
                   color = "blue",
                   highlightOptions = highlightOptions(color = "white",
                                      weight = 5, bringToFront = F, opacity = 1)
                   )
    mapl
  })

  observeEvent(input$map_shape_click, {

    # Leaflet Proxy
    proxy <- leafletProxy("map")

    # Get Shape Input Click
    click <- input$map_shape_click

    # Store click IDS in reactiveValue
    clicklist$ids <- c(clicklist$ids, click$id)

    # Filter Lines based on ID_2 in Stored Clicks
    sel_lines <- polylines$geom[as.character(polylines$geom$id_2) %in% clicklist$ids, ]

    # If Clicked-ID is already known
    if (click$id %in% sel_lines$id) {

      # Get ID_2 of clicked line
      nameMatch <- as.character(sel_lines@data$id_2)[as.character(sel_lines@data$id) == click$id]

      ## Filter Stored clicks for matching ID_2 in actual click
      clicklist$ids <- clicklist$ids[!clicklist$ids %in% click$id]

      ## Remove ID_2 from Stored Clicks
      clicklist$ids <- clicklist$ids[!clicklist$ids %in% nameMatch]

      # Remove layer based on clicked-ID
      proxy %>% removeShape(layerId = click$id)

    } else { 

      # Add Filtered Lines
      proxy %>% addPolylines(data = sel_lines, smoothFactor = 10,
                             layerId = as.character(sel_lines@data$id),
                             color="red", weight=5,opacity=1, 
                             highlightOptions = highlightOptions(color = "green",
                                                                 weight = 5, bringToFront = F, opacity = 1))
    }

  })
})

shinyApp(ui, server)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 传单突出显示选项 的相关文章

随机推荐

  • SaveChanges() 实体框架 4.1 的问题

    我在保存对数据库的更改时遇到问题 我正在控制器中更新模型 A 但是当我使用 SaveChanges 保存更改时 我最终在 B 的数据库中出现了重复的项目 调用 UpdateModel 后 我检查了 Bs 属性 它正如我所预期的那样 但是在调
  • 使用 supertest、express 和 mocha 进行 Grunt 测试 api

    我有一个由express运行的https服务器 我使用mocha和supertest对其进行测试 我的问题是 如果我只运行测试 就可以了 如果我尝试使用 test 运行 gruntfile 然后运行 express 我会看到很多 EADDR
  • 如何让按钮文本在 IE 中顶部对齐?

    我在按钮内有一些文本 我希望该文本在按钮顶部对齐 默认情况下 它似乎与中间对齐 在 webkit 中 我可以使用 webkit box align start 将此文本对齐到顶部这似乎不适用于 IE 例子 http jsfiddle net
  • 如何从具有 EXCEPTION 效果的 PureScript 函数返回值?

    我刚刚开始学习 PureScript 效果 并且一直在尝试创建一个具有 EXCEPTION 效果的函数 lengthGt5 forall eff String gt Eff err EXCEPTION eff String lengthGt
  • kubectl 端口转发是否加密?

    在运行 kubectl port forward 命令时 我找不到任何有关集群 pod 和 locahost 之间的连接创建被加密的信息 看起来它使用的是 socat https linux die net man 1 socat 支持加密
  • 是否有一种可以容忍微小差异的哈希算法?

    我正在做一些网络爬行类型的工作 在网页中查找某些术语并找到它们在页面上的位置 然后将其缓存以供以后使用 我希望能够定期检查页面是否有任何重大更改 像 md5 这样的东西可以通过简单地将当前日期和时间放在页面上来阻止 有没有适用于这样的事情的
  • pytest - Monkeypatch 关键字参数默认值

    我想测试函数的默认行为 我有以下内容 app foo py DEFAULT VALUE hello def bar text DEFAULT VALUE print text test test app py import app def
  • 字符串的 SHA1 是否总是返回 ASCII 字符?

    输入字符串可以是unicode字符串 计算SHA1后输出字符串是否总是返回ASCII字符 这要看情况 但严格来说 不是 SHA 1 哈希的输出为 160 位 即 20 个字节 但不保证这些字节位于 ASCII 范围内 但是 某些哈希函数会输
  • Facebook api in python 和源码掌握吧!

    我对 python 有足够的了解 我想使用 facebook python api 为此我从开发人员网站获得了所有 API 密钥和应用程序秘密等 现在我想要的是一个很好的资源 为我提供如何使用Python IDLE 在win7中 验证和检索
  • 为什么我们应该避免使用修饰符形式的rescue?

    我来定义价值 但这个值可能是hash的key的值 我会用rescue如果该键不存在 则定义值为 nil 例如 foo bar a b c rescue nil 但在实践中告诉我不好的风格 因为我使用了修饰符形式的救援 我将更改逻辑以使用检查
  • 从文件中读取行而不在末尾添加“\n”[重复]

    这个问题在这里已经有答案了 我的文件是 xml txt 包含以下内容 books xml news xml mix xml 如果我使用 readline 函数 它会在所有文件的名称处附加 n 这是一个错误 因为我想打开 xml txt 中包
  • 安装Facebook修改的referrer参数值

    I used Google Play 安装引荐来源网址在我的 android 应用程序中并使用以下参数并生成URL正如所描述的 utm source utm medium utm content utm campaign 我编写了自己的自定
  • 如何高效抽分

    我的程序接收 PCL 点云并使用以下方法一一绘制每个点 glBegin GL POINTS glVertex3f point x point y point z glEnd 它可以工作 但由于点数量较多 程序速度相当慢 有没有更有效的方法来
  • 使用 .htaccess 重定向站点但排除两个以上文件夹

    根据这个answer https stackoverflow com a 3414030 3817111 您可以从重定向中排除单个子文件夹 如下所示 RewriteEngine on RewriteRule uploads http exa
  • 使用 Proguard 混淆 ORMLite 模型类

    我想在代码中混淆一些模型 我知道我可以忽略整个模型包 但我不想这样做 我尝试了一些混淆器调整并检查了所有相关帖子 但无济于事 ORMlite 不断抛出java lang RuntimeException Unable to create a
  • Flutter 中何时使用 setState?

    作为 flutter 的新手 使用时对我来说非常困惑setState in Flutter应用 在下面的代码中布尔值searching和变量resBody里面用的setState 我的问题是为什么只searching and resBody
  • Rails update_attribute

    我遇到了以下问题 我有一个名为 用户 的模型 其中有一列名为 已激活 我试图用激活的方法更新该值 但它给了我错误 验证失败 密码不能为空 密码太短 最少为 6 个字符 这对我来说没有意义 因为我没有接触密码字段 我只想更新激活的列 我把代码
  • 正则表达式匹配第一次出现*之后*出现的所有字符?

    例如 如果我尝试匹配输入字符串中的 w 爱德华 伍德沃德 第二个单词中的两个 w 应该匹配 而不是第一个单词中的两个 w 我有一种暗示 该解决方案可能涉及 消极后视 但只是无法获得任何可行的解决方案 我正在使用 Objective C 和正
  • 类型解构

    我的数据类型始终至少有两个参数 最后两个参数始终分别为 q 和 m LANGUAGE TypeFamilies FlexibleContexts UndecidableInstances TypeOperators DataKinds Co
  • R 传单突出显示选项

    我使用以下命令突出显示 R 传单上的一行 library leaflet m leaflet gt addTiles group OpenStreetMap x lt c 1 5 4 8 y lt c 1 3 4 7 data sp Spa