R传单和闪亮如何清除地图点击数据

2024-04-22

下面的例子摘自RStudio 教程 http://rstudio.github.io/leaflet/shiny.html传单上。我稍微修改了一下以适应我的问题。

我有一张地图(这里是地震),我使用它在地图上绘制addCircleMarkers单击时,会出现一个弹出窗口,其中包含一些信息。我想要在我的真实应用程序中做的是,当单击地图上的标记时,它会过滤页面上的其他图形,仅显示与该标记相关的数据。我知道如何获取有关用户点击位置的信息input$map_marker_click- 这将为我提供足以满足我的需要的纬度和经度。然而,一旦设置,该值就不会改变。它不会恢复到NULL当用户单击地图上的非标记区域时。如何检测用户在地图中单击了标记以外的其他内容并重置input$map_marker_click to NULL

下面的示例没有其他图表,但我确实显示了input$map_marker_click

library(shiny)
library(leaflet)
library(RColorBrewer)

ui <- bootstrapPage(
  tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
  leafletOutput("map", width = "100%", height = "100%"),
  absolutePanel(top = 10, right = 10,
                sliderInput("range", "Magnitudes", min(quakes$mag), max(quakes$mag),
                            value = range(quakes$mag), step = 0.1
                ),
                selectInput("colors", "Color Scheme",
                            rownames(subset(brewer.pal.info, category %in% c("seq", "div")))
                ),
                checkboxInput("legend", "Show legend", TRUE),
                verbatimTextOutput("clickInfo")
  )
)

server <- function(input, output, session) {

  output$clickInfo = renderPrint({input$map_marker_click})

  filteredData <- reactive({
    quakes[quakes$mag >= input$range[1] & quakes$mag <= input$range[2],]
  })

  colorpal <- reactive({
    colorNumeric(input$colors, quakes$mag)
  })

  output$map <- renderLeaflet({
    leaflet(quakes) %>% addTiles() %>%
      fitBounds(~min(long), ~min(lat), ~max(long), ~max(lat))
  })

  observe({
    pal <- colorpal()
    leafletProxy("map", data = filteredData()) %>%
      clearShapes() %>%
      addCircleMarkers(radius = ~mag^2/3, weight = 1, color = "#777777",
                 fillColor = ~pal(mag), fillOpacity = 0.7, popup = ~paste(mag)
      )
  })

  observe({
    proxy <- leafletProxy("map", data = quakes)
    proxy %>% clearControls()
    if (input$legend) {
      pal <- colorpal()
      proxy %>% addLegend(position = "bottomright",
                          pal = pal, values = ~mag
      )
    }
  })
}

shinyApp(ui, server)

我问了同样的问题here https://stackoverflow.com/questions/35266730/r-leaflet-cran-how-to-register-clicking-off-a-marker用户NicE在那里提供了解决方案。

如果有人遇到此页面寻找解决方案,下面的代码可实现上述请求,当在标记后单击地图时,将单击值重置为 NULL。该示例中唯一的附加代码位于两行 # 之间。

library(shiny)
library(leaflet)
library(RColorBrewer)

ui <- bootstrapPage(
  tags$style(type = "text/css", "html, body {width:100%;height:100%}"),
  leafletOutput("map", width = "100%", height = "100%"),
  absolutePanel(top = 10, right = 10,
                sliderInput("range", "Magnitudes", min(quakes$mag), max(quakes$mag),
                            value = range(quakes$mag), step = 0.1
                ),
                selectInput("colors", "Color Scheme",
                            rownames(subset(brewer.pal.info, category %in% c("seq", "div")))
                ),
                checkboxInput("legend", "Show legend", TRUE),
                verbatimTextOutput("clickInfo")
  )
)

server <- function(input, output, session) {

  #########################################################

  data <- reactiveValues(clickedMarker=NULL)

  observeEvent(input$map_marker_click,
               {data$clickedMarker <- input$map_marker_click})

  observeEvent(input$map_click,
               {data$clickedMarker <- NULL})

  output$clickInfo <- renderPrint({data$clickedMarker})

  ##########################################################

  filteredData <- reactive({
    quakes[quakes$mag >= input$range[1] & quakes$mag <= input$range[2],]
  })

  colorpal <- reactive({
    colorNumeric(input$colors, quakes$mag)
  })

  output$map <- renderLeaflet({
    leaflet(quakes) %>% addTiles() %>%
      fitBounds(~min(long), ~min(lat), ~max(long), ~max(lat))
  })

  observe({
    pal <- colorpal()
    leafletProxy("map", data = filteredData()) %>%
      clearShapes() %>%
      addCircleMarkers(radius = ~mag^2/3, weight = 1, color = "#777777",
                       fillColor = ~pal(mag), fillOpacity = 0.7, popup = ~paste(mag)
      )
  })

  observe({
    proxy <- leafletProxy("map", data = quakes)
    proxy %>% clearControls()
    if (input$legend) {
      pal <- colorpal()
      proxy %>% addLegend(position = "bottomright",
                          pal = pal, values = ~mag
      )
    }
  })
}

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

R传单和闪亮如何清除地图点击数据 的相关文章

  • 使用 readHTMLTable 从 https 网页读取表格

    我安装了 R 3 3 1 并使用 RStudio 0 99 903 我正在尝试从以下 URL 将表格读入 R https www fantasypros com nfl rankings consensus cheatsheets php
  • 聚合日期时间以总结在特定条件下花费的时间

    我很困惑我应该如何继续 我下面有一些虚拟数据 Date lt as POSIXct c 2018 03 20 11 52 25 2018 03 22 12 01 44 2018 03 20 12 05 25 2018 03 20 12 10
  • 将日期时间字符串转换为 Date 类

    我有一个带有日期时间字符列的数据框 当我使用as Date 除了少数实例之外 我的大多数字符串都被正确解析 下面的示例有望向您展示发生了什么 my attempt to parse the string to Date uses the s
  • R:如何找到向量的模式[重复]

    这个问题在这里已经有答案了 下面是我的data frame我想知道每个内存类别 1 到 8 的模式是什么 gt dput d structure list MEMORY1 c 5 5 7 1 5 6 4 5 4 5 5 4 1 5 5 2
  • R data.table 多个条件连接

    我设计了一种解决方案 用于从两个单独数据表的多个列中查找值 并添加基于新列的值计算 多个条件比较 代码如下 它涉及在计算两个表中的值时使用 data table 和联接 但是 这些表没有联接在我正在比较的列上 因此我怀疑我可能无法获得 da
  • R:ifelse 中的字符串列表

    我正在寻找与 MySQL 中的 where var in 语句类似的东西 我的代码如下 data lt data frame id 10001 10030 cc1 rep c a b c 10 attach data data new lt
  • R 错误:无法更改锁定绑定的值

    我试图估计无限数字流的平均值和标准差 当我运行代码时 出现错误消息 无法更改锁定绑定的值 我做了一些研究 发现这个错误与我使用全局变量有关 但我无法弄清楚 任何帮助将非常感激 在此先感谢您的帮助 define global variable
  • 根据 row_number() 过滤 data.frame

    更新 自从提出这个问题以来 dplyr 已经更新 现在按照 OP 的要求执行 我正在尝试获取第二行到第七行data frame using dplyr 我正在这样做 require dplyr df lt data frame id 1 1
  • 空间数据xyz到矩阵

    我有一个大数据框 100 000 行 其中包含 LON LAT VALUE 我想将其转换为矩阵 EPSG 中的坐标 3035 我使用以下命令尝试了 reshape2 包 acast df lon lat value var value 效果
  • R参考类问题

    我正在尝试在 R 中创建一个简单的参考类 这是我的代码 R 初学者 MyClass lt setRefClass MyClass fields list a numeric b numeric methods list initialize
  • 在 Lavaan 生长曲线模型中提取个体轨迹

    我已经使用 R 的 Lavaan 包中的 Growth 函数成功地对一项研究的纵向数据进行了建模 我找不到任何关于如何提取每个参与者的预测轨迹的记录 我只能找到整个组的预测轨迹 在摘要输出的 拦截 部分下给出 使用 lavPredict m
  • R 多元一步预测和准确性

    我想使用 R 来比较两个预测模型的 RMSE 均方根误差 第一个模型使用 1966 年至 2000 年的估计值来预测 2001 年 然后使用 1966 年至 2001 年的估计值来预测 2002 年 依此类推直至 2015 年 第二个模型使
  • 汇总表中各列的字符值比例

    在这种数据框中 df lt data frame w1 c A A B C A w2 c C A A C C w3 c C A B C B 我需要计算所有列中字符值的列内比例 有趣的是 以下代码适用于大型实际数据集 但对上述玩具数据会引发错
  • 如何返回包含最大值标签的向量

    我有一个 4 列数组 我想获得一个向量 其中每行包含包含该行最大值的列的标签 我可以在循环中执行此操作 但我想使用矩阵函数来提高速度 我怎样才能在不编写自己的库函数的情况下做到这一点 有一个函数可以做到这一点 如果x是你的矩阵 尝试max
  • 在 igraph 中为社区分配颜色

    我在 igraph 中使用 fastgreedy community 检测算法在 R 中生成社区 代码返回 12 个社区 但是在绘图时很难识别它们 因为它返回的图的颜色数量有限 我怎样才能用十二种不同的颜色绘制这个图表 l2 lt layo
  • 排序因素与水平

    有人能解释一下 R 中 ordered 参数的用途吗 R says ordered逻辑标志来确定级别是否应被视为有序 按给定的顺序 所以如果我有一个名为名称的因素并设置ordered TRUE names lt factor c fred
  • 如何自动启动我的 ec2 实例、运行命令然后将其关闭?

    我想每周对 redshift postgres 数据库中的数据运行一次机器学习模型 我使用以下命令将 R 脚本设置为休息 apiplumbr然后我将其设置为一项任务来管理pm2 我有它 所以任务会在ec2实例启动然后继续运行 要让 R 脚本
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor
  • 如何绘制大时间序列(数千次给药次数/药物剂量)?

    我正在尝试绘制医院中如何开出单一药物的图解 在这个虚拟数据库中 我在 2017 年 1 月 1 日之后遇到了 1000 名患者 绘图的目的是了解该药物的给药模式 在接近入院 出院或患者住院期间是否更频繁 高剂量给药 Get random d
  • 通过使用 navbarPanel() 并隐藏导航栏构建多页闪亮应用程序用户端(在 ui.R 中)?

    我想构建一个多页闪亮应用程序 我可以在其中控制用户可以看到哪个页面 迪安 阿塔利确实这个演示应用程序中有类似的东西 https github com daattali advanced shiny tree master multiple

随机推荐

  • Python http.client.RemoteDisconnected

    尝试使用 python 通过 Web 服务运行多个 ID 我收到 http client RemoteDisconnected 远程端关闭连接而没有响应 错误 我不想尝试 捕获此错误 我想调查为什么会收到此响应 我已经能够得到 400 和
  • java填充系统属性的源码有哪些

    Through System getProperty 字符串键 http docs oracle com javase 7 docs api java lang System html getProperty java lang Strin
  • Angular2测试表单:未调用提交方法

    有了这个组件 import Component from angular2 core import FORM DIRECTIVES from angular2 common Component selector something temp
  • 如何使用 ConfigurationBuilder 绑定到配置类

    我想用ConfigurationBuidler阅读我的appsettings json文件 我看不出我做错了什么 我的文件是 comment this gets copied to bin debug on build the app up
  • Java JFormattedTextfield 时间格式化

    我在代码中使用时间时遇到了一些麻烦 txtDauer new JFormattedTextField txtDauer setFormatterFactory new DefaultFormatterFactory new DateForm
  • 尝试让 POST 返回 400 错误请求

    我有一个通过关联构建新模型的 create 方法 如果 POST 请求中没有参数 我希望它返回带有一些文本的 400 响应 但是 我收到错误 这是在 Rails 4 0 2 中 控制器方法 def create cast profile c
  • jQuery - .children().size() 更改时触发事件

    我已经搜索了近和远 但我不知道如何在子元素的 size 上放置侦听器 我想做的是 我有一个包含 0 6 个以上子元素的 div 这个数字没有定义 因为我正在制作一个购物车 我希望有一个侦听器 而不是每个可以更改购物车中的商品数量的按钮 即添
  • 来自 json 数据的 Padrino 模型

    我一直在为我正在从事的一个项目寻找 Padrino 它似乎非常适合 因为我理想情况下希望支持以 json 形式发送和接收数据 但是我想知道是否有任何内置的自动化帮助程序或功能可以从发布请求 或其他请求 中获取数据并将该数据放入模型中 而无需
  • IIS8 Express 上的 SqlRoleProvider

    我的 Web 应用程序 WCF 服务 使用SqlRoleProvider 这适用于Visual Studio 开发服务器 将其切换到IIS8 Express导致它抛出一个NullReferenceException though Roles
  • pandas HDFStore - 如何重新打开?

    我使用以下方法创建了一个文件 store pd HDFStore home data h5 并使用以下方法存储一些表 store firstSet df1 store close 我关闭了python并在一个新的环境中重新打开 我如何重新打
  • 使用Python的Requests模块登录ASP网站

    我试图从我的学校页面上抓取一些信息 但我很难通过登录 我知道有类似的线程 我花了一整天的时间阅读 但无法使其发挥作用 这是我使用的程序 用户名和密码已更改 import requests payload ctl00 cphmain Logi
  • 按值对 Javascript 对象进行排序

    在我的 Javascript 应用程序中 我有一个对象 我需要能够通过内部对象中的值对数组进行排序 例如 a timestamp xxxxxx other yyyyyy b timestamp xxxxxx other yyyyyy c t
  • 如何检查数组的某一项是否具有真值

    在对象数组中 如何检查任何数组项是否具有 true 属性 我有一个对象数组 我需要检查数组项中是否有一个属性 其值确实是 const arr name Tony test false name Jack test false name Ti
  • 在单线程中的 List.Add 过程中,什么可能导致“目标数组不够长”?

    我有一个要添加到嵌套 foreach 循环中的对象列表 该操作是同步的 或者也许我并不像我认为的那样理解 lambda 并且是单线程的 并且列表并不是不合理的大 我完全不知道可能导致此异常的原因 public string Promotio
  • 从覆盖率报告中删除自动生成的异常代码

    让我们从一个最小的工作示例开始 主要 cpp include
  • C# 在枚举中使用数字

    这是一个有效的枚举 public enum myEnum a 1 b 2 c 3 d 4 e 5 f 6 g 7 h 0xff 但这不是 public enum myEnum 1a 1 2a 2 3a 3 有没有办法在枚举中使用数字 我已经
  • 在 Ember.js 中,为什么绑定到数组在 {{#each}} 之外不起作用?

    在下面的代码中 我渲染了 3 个视图 第二个和第三个视图渲染App controller a 单击第一个视图会发生变化App controller a 单击时 第三个视图会更新其内容 第二个视图不更新其内容 为什么 我认为第二个视图绑定到数
  • open() 尝试打开管道进行读取时会阻塞

    我有两个进程 一个服务器和一个客户端 它们应该通过管道 C Linux 进行通信 服务器打开管道O RDONLY标志 以及客户端O WRONLY 然而 服务器阻塞在open函数 而客户端似乎运行成功 open函数返回成功 因此write功能
  • dplyr 就地突变[重复]

    这个问题在这里已经有答案了 这是我的例子 library dplyr a lt c 0 2 1 3 df test lt data frame a df test gt mutate a round a 0 它产生 a 1 0 2 1 但不
  • R传单和闪亮如何清除地图点击数据

    下面的例子摘自RStudio 教程 http rstudio github io leaflet shiny html传单上 我稍微修改了一下以适应我的问题 我有一张地图 这里是地震 我使用它在地图上绘制addCircleMarkers单击