r - 无响应的 Leaflet 的 addLayersControl()
问题描述
我正在尝试制作一张地图,以便我可以选择要显示的数据点组。在我尝试“改进”我的传奇之前,它确实有效,即通过在其中包含不同类型的标记。
现在,我的点显示正确,图例也正确显示,但是当我取消选中其中一个组时,什么也没有发生。知道如何解决这个问题吗?我已经花了几个小时,但无法弄清楚。
干杯!
这是我的代码:
library("leaflet")
df <- data.frame(name = c("A", "B", "C"),
type = c("Always", "Often", "Never"),
city = c("Paris", "Marseille", "Bordeaux"),
lat = c(48.9, 43.3, 44.8),
long = c(2.3, 5.4, -0.6))
#Create list of icons
IconSet <- awesomeIconList(
"Always" = makeAwesomeIcon(icon = "map-marker", markerColor = "green", library = "glyphicon"),
"Often" = makeAwesomeIcon(icon = "map-marker", markerColor = "blue", library = "glyphicon"),
"Never" = makeAwesomeIcon(icon = "map-marker", markerColor = "red", library = "glyphicon"))
#Create groups
groups <- c("Always" <- "<div style='position: relative; display: inline-block' class='awesome-marker-icon-green awesome-marker'><i class='glyphicon glyphicon-map-marker icon-white '></i></div>Always displayed",
"Often" <- "<div style='position: relative; display: inline-block' class='awesome-marker-icon-blue awesome-marker'><i class='glyphicon glyphicon-map-marker icon-white '></i></div>Often displayed",
"Never" <- "<div style='position: relative; display: inline-block' class='awesome-marker-icon-red awesome-marker'><i class='glyphicon glyphicon-map-marker icon-white '></i></div>Never displayed")
#Create map
m <- leaflet() %>%
addTiles(options = providerTileOptions(minZoom = 5, maxZoom = 9)) %>%
setView(lng = 2.4, lat = 46.5, zoom = 5) %>%
addAwesomeMarkers(icon = ~IconSet[type],
clusterOptions = markerClusterOptions(freezeAtZoom = 9),
data = df, lng = ~long, lat = ~lat,
group = ~groups[type]) %>%
addLayersControl(overlayGroups = groups, options = layersControlOptions(collapsed = FALSE), position = "topleft")
m
解决方案
我找到了解决方案......这是一个非常愚蠢的问题。
与常规标记不同,data =
显然不能定义在...中addAwesomeMarkers()
而是leaflet()
...
最后一点工作代码变为:
m <- leaflet(data = df) %>%
addTiles(options = providerTileOptions(minZoom = 5, maxZoom = 9)) %>%
setView(lng = 2.4, lat = 46.5, zoom = 5) %>%
addAwesomeMarkers(icon = ~IconSet[type], group = ~groups[type]) %>%
addLayersControl(overlayGroups = groups, options = layersControlOptions(collapsed = FALSE), position = "topleft")
推荐阅读
- tornado - 如何管理 Tornado 应用程序中资源的异步启动和关闭?
- javascript - Cannot find a differ supporting object '[object Object] in Angular 8
- amazon-web-services - AWS Global Accelerator 的 TLS 连接问题
- sqlite - Computing Balance Sheet
- windows - 'IAsyncOperation<>' Xamarin 表单
- r - 目前有没有办法使用生存包中的 tt() 函数来评估比例风险?
- c# - 如何使用 Microsoft.Graph C# API 请求增量
- python - 类型错误:无法将 datetime.datetime 与 datetime.date 进行比较
- mysql - 如何处理 BIG(16GB + 或 100M+ 行)文件并导入 MySQL 数据库
- reactjs - Reactjs JSX 在 GKE 下无法渲染