r - R+Shiny+leaflet:根据缩放级别在地图上聚合值
问题描述
请考虑文章末尾的小例子。我只是在地图上放了很多标记。我希望能够做两件事:
将一个值(只是一个数字)与地图上的每个标记相关联。当我用鼠标悬停在标记上时,数字应该是可见的。
为简单起见,假设我们将值 1 与每个标记相关联。如果根据缩放级别适当地汇总总数(附加到标记的各个值的总和),那就太好了。例如,当我缩小时,我应该看到一个值为 40 的标记,然后逐渐增加更多具有相关值的标记,这些值的总和将始终为 40。
有人知道如何实现吗?谢谢!
谢谢!
library(shiny)
library(leaflet)
r_colors <- rgb(t(col2rgb(colors()) / 255))
names(r_colors) <- colors()
ui <- fluidPage(
leafletOutput("mymap"),
p(),
actionButton("recalc", "New points")
)
server <- function(input, output, session) {
points <- eventReactive(input$recalc, {
cbind(rnorm(40) * 2 + 13, rnorm(40) + 48)
}, ignoreNULL = FALSE)
output$mymap <- renderLeaflet({
leaflet() %>%
addProviderTiles(providers$Stamen.TonerLite,
options = providerTileOptions(noWrap = TRUE)
) %>%
addMarkers(data = points())
})
}
shinyApp(ui, server)
由reprex 包(v0.3.0)于 2020 年 9 月 16 日创建
解决方案
您必须自己进行聚合,然后使用不同的组 ID 添加它。然后,你可以处理在哪个缩放级别上显示哪个组groupOptions
。有关更多信息,您可以查看此答案
推荐阅读
- android - 如何在导航视图的边缘打印一个字符?
- python - 通过将一系列日期时间传递给现有数据框来创建新数据框
- amazon-web-services - 使用 Serverless 和 Node js 从 S3 存储桶获取文件
- node.js - 使用 Express 从 google API 获取 geoCoding
- mysql - 我无法用 mysql 中的触发器更新我的表
- css -
标签背景固定图像重叠在标题上 - python - 如何编写脚本 bash 在 jupyter-notebook 中输入多行输入?
- angular - 使用 ionic angular 6 在 Firebase 中管理用户
- laravel - Laravel 雄辩的关系多对一不起作用
- angular - 每个页面上出现的父组件样式